在节点中得到这个错误,我认为这是由于我的一件中间件有点关系,但它指向的代码行是我的用户控制器在res .render()调用。TypeError:req.next不是一个函数
我找不到任何人在网上写这个错误,并且在查看一段代码后找不到原因。有任何想法吗?
在节点中得到这个错误,我认为这是由于我的一件中间件有点关系,但它指向的代码行是我的用户控制器在res .render()调用。TypeError:req.next不是一个函数
我找不到任何人在网上写这个错误,并且在查看一段代码后找不到原因。有任何想法吗?
如果你看看在快速的源代码,你会看到该行的response.js
966(从堆栈)是这样的:
if (err) return req.next(err);
你看到的错误消息暗示req
已定义,但next
不是函数。如果你看远一点了,你能看到req
是来自:
var req = this.req;
其中this
是你叫render
响应对象。
虽然next
通常只是作为参数传递给一个回调传递,还应该是一个称为next
附加到请求的功能。这不是你通常与自己互动的东西,它是内部工作的一部分。
所以我看到两种可能性。或者有东西改变了res.req
指向错误的对象,或者东西已经吹走req.next
。我建议添加一些控制台日志记录来确切地分离出错的地方。例如,如果你把这个每个中间件之间的通话:
app.use(function(req, res, next) {
console.log(typeof req.next);
next();
});
这将让您识别的地步,被它应该是被别的功能req.next
开关。
'next'是独立函数,它不是'req'对象的一部分。你在代码中调用'req.next'吗? – alexmac
不,我不.. – Antoine
那么你能提供堆栈跟踪吗? – alexmac