我的服务器正在托管静态图片,我可以在浏览器中访问它
例如:http://localhost:3000/media/foo.png。
但是当我尝试使用一些额外的查询参数获取图像时,例如
http://localhost:3000/media/foo.png?var1=1&var2=2
,它永远不会进入app.get('/ media')的回调函数,它使用与express.static相同的url。我想知道我的路由通配符映射是否错误?或者我只是无法使用相同名称的静态URL设置get方法?如何解决这个问题。
var express = require('express');
app.use('/media', express.static('libs'));
app.get('/media/*', function(req, res) {
console.log('trigger');
});
答案 0 :(得分:0)
您需要在get:media
之前声明use:static
并检查查询参数:
app.get('/media/*', function(req, res, next) {
if (Object.keys(req.query).length===2) {
// do something
console.log(req.query)
res.end('Well, there are query parameters in the URL...')
} else {
next() // Ok, try static
}
})
app.use('/media', express.static('libs'))