最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

将nodejs MongoDB连接代码移动到另一个文件中

运维笔记admin13浏览0评论

将nodejs MongoDB连接代码移动到另一个文件中

将nodejs MongoDB连接代码移动到另一个文件中

将数据库连接代码移动到另一个nodejs文件,没有返回连接对象。

我可以在nodejs中将数据写入MongoDB。所有的数据库连接代码都写在一个.js文件中。

现在我尝试将数据库连接代码分隔到另一个.js文件,现在看来无法成功建立连接。

这里是1个.js文件中的工作代码:

  const mongoDBIP = '192.168.1.71';
  const mongoDBPort = 27017;

  const mongo= require('mongodb').MongoClient;
  const mongoURL = 'mongodb://<mongo admin>:<password>@'+`${mongoDBIP}`+':'+`${mongoDBPort}`;

  ...

    mongo.connect(mongoURL, { useNewUrlParser: true, useUnifiedTopology: true }, (err, db) => {
    if (err) {}

    var dbo = db.db(<databaseName>);

    var collection = dbo.collection('messages');

    collection.insertOne(message, (err, result) => {
            if (err) {}
    })

  ...

现在我将其分为2个.js文件:

  var _mongo = require('./mongodb.js');

  var mongoDBO = _mongo.mongoDBO;

  ...

    var dbo = mongoDBO('feathers');

    console.log('DBO:' + dbo);   <-- here, dbo is NULL

    var collection = dbo.collection('messages');

    collection.insertOne(message, (err, result) => {
            if (err) {}
    })

  ...

这里是mongodb.js的内容:

  // mongodb.js

  const mongoDBIP = '192.168.1.71';
  const mongoDBPort = 27017;

  const mongoClient = require('mongodb').MongoClient;
  const mongoURL = 'mongodb://<mongo admin>:<password>@'+`${mongoDBIP}`+':'+`${mongoDBPort}`;


  function mongoDBO(database) {

    var dbo;

    mongoClient.connect(mongoURL, { useNewUrlParser: true, useUnifiedTopology: true }, (err, dbase) => {
            if (err) {}
            dbo = dbase.db(database);   <-- here, dbo is NULL
    });

    return dbo;
  }

  module.exports = Object.freeze({
      mongoDBO
  });

我希望mongodb.js中的对象“ dbo”不会为NULL,而是。这在nodejs v10.x和v12.x下都发生。

回答如下:

我认为您需要调用connect函数。

 var dbo = mongoDBO('feathers')();
发布评论

评论列表(0)

  1. 暂无评论