在Node.js下的Express中,我想检查特定路径下的请求(比如/restricted
),如果可以接受,请让静态提供程序处理请求,静态提供程序处理缓存标题等。
如果我只是使用app.get('/restricted/:file', ...)
然后使用res.sendfile
发送静态文件,则会忽略所有缓存标头并始终发送文件。
我无法使用全面登录检查,因为不同的用户只能获得不同的文件。
实施此方法的最佳方法是什么?
答案 0 :(得分:14)
var express = require("express");
var app = express.createServer();
var staticMiddleware = express.static(__dirname + "/public");
app.get("/restricted/:file", function(req, res, next) {
var authorized = true;
//Compute authorization appropriately here
if (authorized) {
staticMiddleware(req, res, next);
} else {
res.send(401);
}
});
app.listen(3456);
这将在适当时使用静态中间件,包括其所有功能。否则,您可以根据需要处理未经授权的请求。