したがって、connect-mongoまたはexpressjsが原因であると思われるバインディングの問題に遭遇しています。コードは次のとおりです。
//Error
app.use(function(err, req, res, next) {
if (err instanceof noData) {
res.send(err, 404);
} else {
next(err);
}
});
カスタム エラー ハンドラ
function noData(err){
this.code = 0;
this.msg = err;
console.log(Error);
Error.call(this, {code:0, msg:err});
Error.captureStackTrace(this, arguments.callee);
};
noData.prototype.__proto__ = Error.prototype;
ここでエラーをスローします:
err = true;
//if(err) throw new noData('No Password');
//Get user from database
db.collection('users').find({}, {limit:1}).toArray(function(err, result) {
if(err) throw new noData('No Data');
});
最初のエラーは正しくスローされますが、2 番目のエラーは一般的な nodejs エラーをスローします。
throw e; // process.nextTick error, or 'error' event on first tick
ここで何が間違っていますか?connect-mongo がどういうわけかバインディングを失う原因になっていますか? どんな考えでも大歓迎です。