簡體   English   中英

NodeJS / Express / Mongodb-無法讀取未定義的屬性“集合”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM