我真的不明白。假设我已经选择了mongodb
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未定义的错误,我可以理解,但那时却找不到如何处理?
答案 0 :(得分:1)
在require()
设置require('../app').db
之前,您app
同步了该文件并获得了exports.db
的值。
在.db
实际上存在之后,您应该只在以后访问它。