我正在尝试通过一个单独的模块创建一个可重用的Mongodb连接Object
。那么我的策略是在config目录中创建一个配置文件
( server / config / db-connection.js ) -
var MongoClient = require( 'mongodb' ).MongoClient;
var _db;
module.exports = {
connectToServer: function( callback ) {
MongoClient.connect( "mongodb://localhost:27017/articles", function( err, db ) {
_db = db;
return callback( err );
});
},
getDb: function() {
return _db;
}
};
后来我一直在尝试在server.js文件中初始化数据库连接
( server.js ) -
const mongoConfig = require('./server/config/db-connection');
mongoConfig.connectToServer(function (err) {
if (err) console.log(err);
});
在路由器文件中,我一直试图通过使用可重用的连接对象将我的帖子插入users
集合。
( server / routes / admin.js / ) -
const express = require('express');
const router = express.Router();
const mongoConfig = require('../config/db-connection');
var articlesDB = mongoConfig.getDb();
router.post('/configure', (req, res, next) => {
let super_admin_info = req.body;
super_admin_info.role = 'superadmin';
articlesDB.collection('users').insert(super_admin_info)
.then((result) => {
console.log(result);
res.send('Successfully saved super admin');
})
.catch((error) => {
console.log(error);
});
});
module.exports = router;
我收到以下错误 -
无法阅读财产'收集'未定义的
请问你能在我的代码中弄清楚问题是什么吗?
谢谢!
答案 0 :(得分:0)
问题在于你的db-connection.js文件。 Mongo的connect回调用于返回db对象,但不再直接。现在,您必须直接询问数据库对象,如下所示:
db.db();