Перенаправление в статический файл в express.js - PullRequest
8 голосов
/ 27 февраля 2012

В Express под Node.js я бы хотел проверить запрос по определенному пути (скажем, /restricted) и, если это приемлемо, обработать запрос статическим провайдером, который обрабатывает заголовки кэшированияи т. д.

Если я просто использую app.get('/restricted/:file', ...), а затем использую res.sendfile для отправки статического файла, если он утвержден, он игнорирует все заголовки кэширования и всегда отправляет файл.

Я могу '• используйте общую проверку входа в систему, потому что разные пользователи должны получать только разные файлы.

Каков наилучший способ реализовать это?

1 Ответ

14 голосов
/ 27 февраля 2012
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);

При необходимости будет использоваться статическое промежуточное ПО, включая все его функции. В противном случае вы можете обрабатывать несанкционированные запросы соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...