![](/img/trans.png)
[英]Cannot read property 'collection' of undefined MongoDB nodejs driver
[英]NodeJS/Express/Mongodb - Cannot read property 'collection' of undefined
我試圖通過一個單獨的模塊制作可重用的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;
我收到以下錯誤-
無法讀取未定義的屬性“集合”
您能找出我代碼中的問題是什么嗎?
謝謝!
問題出在您的db-connection.js文件中。 Mongo的connect回調用於返回db對象,但不再直接執行。 現在,您必須直接請求數據庫對象,如下所示:
db.db();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.