【发布时间】:2017-07-28 14:03:37
【问题描述】:
我的next(err) 无法正常工作。它忽略错误并仅加载页面而不是发送 HTTP 状态代码 404。
ldap 搜索工作正常,结果符合预期。当 else 语句被命中时,它只是不返回错误。
控制台确实在日志中显示failed
app.use(function(req, res, next){
conn.search('dc=foo', opts, function (err, res) {
assert.ifError(err)
var entries = []
res.on('searchEntry', function (entry) {
entries.push(entry.object)
})
res.on('end', function (result) {
conn.unbind(function (err) {
console.log('Disconnecting')
if (entries.length == 1) {
next()
} else {
console.log('fail')
var err = new Error('Permission Denied')
err.status = 404
next(err)
}
})
})
})
})
【问题讨论】:
-
嗯,这是一个不错的 4 级深度回调地狱。你确定
res.on('end')应该在res.on('searchEntry')里面吗? -
哈哈是的,我的错误在于输入不是 cp/paste。而且我似乎总是在这里弄乱缩进
-
res.on('end')仍在res.on('searchEntry')... 如果您给我们错误的代码,没有人可以帮助我们 -
伙计,在重新输入时错过某些内容是一个很容易犯的错误。
-
我知道,但是您正在寻求帮助,却没有给我们正确的代码,所以...¯\_(ツ)_/¯ 现在这是正确的代码,那么
next在哪里定义了吗?
标签: javascript node.js error-handling next