代码之家  ›  专栏  ›  技术社区  ›  Alexander Tarasenko

导出节点js中的db对象

  •  0
  • Alexander Tarasenko  · 技术社区  · 6 年前

    let db;
    app.use(bodyParser.json());
    app.use('/api/todos', todosRoutes); // routes in separate file
    
    MongoClient.connect(
      uri, 
      {useNewUrlParser: true}, 
      (err, client) => {
        if(err) {
          return console.log(err)
        }
        db = client.db('todosApp');
        module.exports = db; // how can I export this db so my routes can use it?
        app.listen(PORT, () => {
          console.log(`app is listening on port ${PORT}`);
        })
      }
    )
    

    在我的路线上

    const db = require('../app').db;
    const collectionName = 'todos';
    
    router.get('/', (req, res) => {
      db.collection(collectionName)
        .find()
        .toArray()
        .then(collection => res.json(collection))
        .catch(err => res.status(500).json(err))
    })
    

    我总是得到一个错误,db是未定义的,我可以理解,但不知道如何处理它?

    1 回复  |  直到 6 年前
        1
  •  1
  •   SLaks    6 年前

    require() d文件并得到 require('../app').db app exports.db .

    您应该只访问 .db