为了获得mongo 3.2提供的性能,我们已经从3.0升级到mongo 3.2,mongoose版本从3.8.8升级到4.5.9。但是我们遇到了以下错误,无法找出原因。
events.js:141
throw er; // Unhandled 'error' event
^
TypeError: callback.apply is not a function
at Query.<anonymous> (/home/ubuntu/urbanclap/service-market/node_modules/mongoose/lib/model.js:3327:16)
at /home/ubuntu/urbanclap/service-market/node_modules/mongoose/node_modules/kareem/index.js:259:21
at /home/ubuntu/urbanclap/service-market/node_modules/mongoose/node_modules/kareem/index.js:127:16
at doNTCallback0 (node.js:408:9)
at process._tickCallback (node.js:337:13)
error: Forever detected script exited with code: 1
error: Script restart attempt #11
Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
从Mongoose代码我知道它发出了以下代码的错误。
Model.$wrapCallback = function(callback) {
var _this = this;
return function() {
try {
callback.apply(null, arguments);
} catch (error) {
_this.emit('error', error);
}
};
};
答案 0 :(得分:0)
可能是因为mongoose最新版本,我们必须明确添加承诺。
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://10.7.0.3:27107/data/db');