AssertionError:null == MongoError:服务器实例池被销毁

时间:2017-02-18 03:28:32

标签: node.js mongodb express

此问题的主题是我在Node / Express应用程序中执行此insertOne操作时收到的错误消息。

代码:

router.post('/api/formula-list', function(req, res){
var db = req.db.collection('formulas');
var formula = data; //an array stored elsewhere in the program

db.insertOne({
  "name": req.body.name,
  "description": req.body.description,
  "formula": formula
}, function(err, r) {
    assert.equal(null, err);
    assert.equal(1, r.insertedCount);
});
  data.length = 0;
});

我认为这意味着我在insertOne中遇到了回调问题,并且在完成之前会对数据库进行调用。

我不知道如何解决这个问题。我更喜欢一个纯javascript / mongo的解决方案,并且不需要外部库,因为我正在努力研究Node和Mongo背后的核心技术。

questionthis one非常相似,但是其中一个并没有真正有用的答案,而另一个则使用了我想要避免使用的猫鼬。

更新

在我的app.js中,我像这样初始化驱动程序:

APP.JS

// make mongodb available to the application
app.use((req, res, next) => {
mongo.connect('mongodb://localhost:27017/formulas', (e, db) => {
  if (e) return next(e);
  req.db = db;
next();
});

// cleanup
  req.on('end', () => { req.db.close(); });
});

0 个答案:

没有答案