У меня нет проблемы как таковой, так как у меня есть обходной путь. Однако процесс понимания и разработки обходного пути выявил то, что мне кажется фундаментальным пробелом в моих знаниях (как программист-самоучка, это часто случается ;-)!), И я не могу найти ответ подключить его куда угодно.
Стандартная настройка node.js / express, например:
app.get('/index.htm', function (request, response) {
console.log("/index.htm");
});
app.get('*', function (request, response) {
console.log("*");
});
Почему, когда пользователь подключается напрямую к index.htm (вводя URL-адрес, хотя я не пробовал переходить по ссылке), ничего не срабатывает? Страница обслуживается без проблем. Очевидный сценарий использования этого - проверить, прошел ли пользователь проверку подлинности перед обслуживанием статической страницы.
К вашему сведению, обходной путь состоит в том, чтобы передать пользователя по маршруту, такому как «/ authenticated» (что соответствует отлично), выполнить проверку, а затем перенаправить и в основном заблокировать все остальное.
Спасибо, что обучили меня заранее; -)
N
ОБНОВЛЕНИЕ вопроса Райноса - да (игнорируйте несоответствие имен переменных сервера / приложения).
// CREATE SERVER
var server = express.createServer();
server.configure(function() {
server.use(express.static(__dirname + '/public'));
server.use(express.logger());
server.use(express.errorHandler({dumpExceptions: true, showStack: true}));
// start of session stuff
server.use(express.cookieParser());
server.use(express.session({store: sessionStore, secret: 'secret', key: 'express.sid'}));
});
Теперь я обнаружил, что маршрутизация в порядке, когда вы удаляете статический файл, т.е. в исходном примере удаление index.htm означает, что консоль теперь будет регистрировать «/index.htm».
N