在表达之前有一个中间件功能.静电是行不通的



我正在运行最新的express(截至撰写本文时为4.1.1)。它包含了这个中间件来提供静态文件。

所以通常包含这个中间件的代码是:
app.use(express.static(path.join(__dirname, 'public')));

一切都很好。但是如果我在此之前尝试包含中间件,例如:

app.use(function(req,res,next){                    
    next();                                          
}, express.static(path.join(__dirname, 'public')));

服务静态中间件现在给我404。

我不确定为什么会发生这种情况。我是否错误地实现了在静态中间件之前的中间件?

您对app.use()的使用不正确。来自文档:

app.use([path], function)
使用给定的中间件function,可选挂载path,默认为"/"。

您将注意到app.use接受一个可选路径和一个函数,而不是多个函数。因此,您应该用自己的app.use调用定义每个中间件,如下所示:

app.use(function(req,res,next){                    
    next();                                          
});
app.use(express.static(path.join(__dirname, 'public')));

最新更新