dushandz
V2EX  ›  Node.js

nodejs mongodb 的连接对象 异步加载的 如何导出给别的文件使用

  •  
  •   dushandz · Jul 19, 2017 · 3845 views
    This topic created in 3231 days ago, the information mentioned may be changed or developed.

    我想把连接成功之后的 DB 对象 导出给别的文件使用,直接导出的话 会返回 undefine

    var mongoClinet = require('mongodb').MongoClient
    const DBLocationString = 'mongodb://localhost:27017/dzusers'
    
    mongoClinet.connect(DBLocationString).then(function(db){
         //想在这里导出 db 对象给别的文件使用
         }).catch(err => console.log(err) )
    }).catch(function(err){
        console.log(err)
    })
    

    package.json 写 "mongodb" 是不是就是用的 官方的 "node-mongodb-native"

    mongodb 为了优化 用不用搞个连接池 还是 一直连接着数据库····

    9 replies    2017-07-24 10:27:54 +08:00
    hronro
        1
    hronro  
       Jul 19, 2017   ❤️ 1
    ```js
    // mongo-connector.js
    export const getDb = mongoClinet.connect(DBLocationString)

    // other-file.js
    import { getDb } from './mongo-connector'
    const db = await getDb
    ```
    dushandz
        2
    dushandz  
    OP
       Jul 19, 2017
    @hronro 额 这样岂不是每次都要 连接一次吗····会不会创建很多连接在内存里··
    hronro
        3
    hronro  
       Jul 19, 2017 via Android   ❤️ 1
    @dushandz 你导出来的是一个 Promise,所以只会连一次
    dushandz
        4
    dushandz  
    OP
       Jul 19, 2017
    @hronro 感谢大佬耐心回答 萌新入坑 = - = 再去看看 JavaScript 语法了 敢问大佬 有什么好的 nodejs 的教程吗···
    hronro
        5
    hronro  
       Jul 19, 2017   ❤️ 1
    @dushandz 不算大佬,js 语法的话,推荐看阮一峰的教程 http://es6.ruanyifeng.com/
    tnaxismdc
        6
    tnaxismdc  
       Jul 19, 2017 via Android
    最近也在搞这个,貌似自带池子,官方给的建议好像也是开了就不要 close,楼主要知道了也 @我一下
    dushandz
        7
    dushandz  
    OP
       Jul 19, 2017
    @tnaxismdc 好的 - 3 -
    ZJH9Rondo
        8
    ZJH9Rondo  
       Jul 20, 2017
    @dushandz 建议你去看一本叫做 《深入浅出 Node.js 》的书,你就对 Node 的异步 I/O 有了一个全新清楚的认识
    dushandz
        9
    dushandz  
    OP
       Jul 24, 2017
    @ZJH9Rondo 买了···里面有些东西过时了 2013 年的把··· 在看了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1070 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 18:06 · PVG 02:06 · LAX 11:06 · JFK 14:06
    ♥ Do have faith in what you're doing.