Node.js + Connect

时间:2013-11-15 11:40:02

标签: javascript node.js

我需要一些解释。 我有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)以便在没有挂起的情况下运行?我应该在哪里放置功能?

1 个答案:

答案 0 :(得分:0)

如果next()在匿名function的正文中:

findPostIdBySlug(match[1], function(err, id) {
    next();
});

然后,findPostIdBySlug()至少需要调用function

var findPostIdBySlug = function (slug, callback) {
    callback();
};

这样它就可以调用next()


另请注意,中间件中的所有路径都应该导致next()或响应。包括没有matchfindPostIdBySlug的人不会被调用。

if (match) {
    findPostIdBySlug(match[1], function(err, id) {
        next();
    });
} else {
    next();
}