第一个函数(findOne)工作正常。但是所有Mongoose功能在这里回调只是没有任何错误。为什么? 谢谢!
var mongoose = require('mongoose');
var Links = require('../models/Links');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/soft');
Links.findOne({}, function(err, l) {
if (err) throw err;
console.log("1", l);
Links.findOne({}, function(err, l_) {
if (err) throw err;
console.log("2", l_);
});
});
mongoose.connection.close();
答案 0 :(得分:2)
在第二个.find
有机会被调用之前,代码正在关闭连接。由于.find
是异步的,因此代码执行第一个调用(它具有执行的连接),但在第一个调用返回执行第二个调用之前继续并断开连接。
在第二次通话中移动.close
通话将允许进行两次通话。
var Links = require('../models/Links');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/soft');
Links.findOne({}, function(err, l) {
if (err) throw err;
console.log("1", l);
Links.findOne({}, function(err, l_) {
if (err) throw err;
console.log("2", l_);
mongoose.connection.close();
});
});