我需要一些解释。 我有app.js:
...使用(改写) 。使用(...)
rewrite.js:
....
module.exports = function(req, res, next) {
.....
if (match) {
findPostIdBySlug(match[1], function(err, id) {
.....
next();
});
....
我没有创建函数findPostIdBySlug() 我的意思是当我尝试时:
var findPostIdBySlug = function() {
return;}
什么都没发生。程序只在rewrite.js中的next()之前停止。如何在代码中实现此功能(findPostIdBySlug)以便在没有挂起的情况下运行?我应该在哪里放置功能?
答案 0 :(得分:0)
如果next()
在匿名function
的正文中:
findPostIdBySlug(match[1], function(err, id) {
next();
});
然后,findPostIdBySlug()
至少需要调用function
:
var findPostIdBySlug = function (slug, callback) {
callback();
};
这样它就可以调用next()
。
另请注意,中间件中的所有路径都应该导致next()
或响应。包括没有match
和findPostIdBySlug
的人不会被调用。
if (match) {
findPostIdBySlug(match[1], function(err, id) {
next();
});
} else {
next();
}