2016-08-25 1 views
0

mongo 3.2가 제공하는 성능을 얻으려면 mongoose 3.2를 3.0에서 3.8.8으로 4.5.9로 업그레이드 한 mongoose 버전으로 업그레이드해야합니다. 그러나 우리는 다음과 같은 오류를 겪고 있으며 그 이유를 찾을 수 없습니다.mongo 3.2.9로 업그레이드 후 몽구스 3.2.0 처리되지 않은 오류 제공

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 

몽구스 코드에서 나는 다음 코드에서 오류가 발생한다는 것을 알게되었습니다.

Model.$wrapCallback = function(callback) { 
var _this = this; 
return function() { 
    try { 
    callback.apply(null, arguments); 
    } catch (error) { 
    _this.emit('error', error); 
    } 
}; 
}; 
+0

당신이 코드의 일부를 게시 할 수 있습니까? 'events.js'에 오류를 표시하는 부분 일 수도 있습니다. –

+0

위의 추가 된 댓글,이 몽구스 코드가 오류를 제공하고 있습니다. 약간의 문제일지도 모르지만 그것이 방출하고있는 것이 무엇이든지간에 우리는 바깥에서 약속을 잡으면서도 여전히 처리되지 않은 오류를 보여줍니다. – mohit3081989

+0

자신의 코드 중 어떤 것이이 오류를 일으키는 지 추적해야합니다. Mongoose가 콜백이 일부 함수 또는 다른 함수로 전달 될 것으로 예상하고있는 것처럼 보입니다. 오류가 발생하는 위치에서 나는''post' hook '(http://mongoosejs.com/docs/middleware.html)을 의심 할 것입니다. – robertklep

답변

0

이 때문에 몽구스 최신 버전의 수 있습니다, 우리는 명시 적으로 약속을 추가해야합니다.

mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://10.7.0.3:27107/data/db'); 

http://mongoosejs.com/docs/promises.html

+0

우리는 이미 그렇게했지만 여전히이 오류가 나타나고 있습니다. – mohit3081989

+0

서버가 실행중인 포트 번호를 변경하십시오. 도움이 될 수 있습니다. –

+0

포트 변경이 어떻게 도움이 될까요? 노드 포트 또는 mongodb 포트를 의미합니까? – mohit3081989

관련 문제