重定向到express.js中的静态文件

时间:2012-02-26 21:50:05

标签: node.js express

在Node.js下的Express中,我想检查特定路径下的请求(比如/restricted),如果可以接受,请让静态提供程序处理请求,静态提供程序处理缓存标题等。

如果我只是使用app.get('/restricted/:file', ...)然后使用res.sendfile发送静态文件,则会忽略所有缓存标头并始终发送文件。

我无法使用全面登录检查,因为不同的用户只能获得不同的文件。

实施此方法的最佳方法是什么?

1 个答案:

答案 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);

这将在适当时使用静态中间件,包括其所有功能。否则,您可以根据需要处理未经授权的请求。