如何在express.static()中获取/ POST文件

时间:2013-08-20 04:17:08

标签: node.js express

我对Express如何提供文件感到有些困惑。

目前我有一个/public目录来保存客户端资源。我使用

配置Express
app.use(express.static(__dirname + '/public'));

我的印象是此目录中的任何内容都是公开的,并且该HTTP方法会默认/public作为访问的根目录(除非由Express手动路由)。

在此目录中的任何文件上使用GET都没有问题(客户端脚本,图像等等。但是,当我尝试在此目录中POST文件时,我得到404.我是否需要手动路由所有POST请求ala < / p>

app.post(route, callback)

谢谢你的帮助

3 个答案:

答案 0 :(得分:6)

连接,因此,Express,静态中间件只接受GET个请求。请参阅here

如果您尝试使用POST覆盖公共文件,则需要为此创建单独的路径。

答案 1 :(得分:2)

仅限static middleware supports GET and HEAD method

连接/快递
if ('GET' != req.method && 'HEAD' != req.method) return next();

所以,是的,如果你想能够POST匹配静态文件的路径,你需要自己定义处理程序。

答案 2 :(得分:0)

我找到了一种发布静态

的简便方法
app.use(staticPath, function(req, res, next){
if ('POST' != req.method){
    next()
}else{
    req.method = 'GET'
    next()
}
})
app.use(staticPath, express.static('./static'))

效果很好,哈哈