2015-01-01 2 views
0

служу из статического URL с Express 4.0:отбыть «статический» маршрут с курьерским с перенаправлением и промежуточным

app.use («/ статическим маршрутом», express.static («./ статического»));

И это отлично работает.

Однако я бы перенаправил своих пользователей на URL-адрес с параметром запроса, если они попали по этому маршруту.

т.е./статический маршрут ->/статический маршрут someQueryParam = привет

Я хотел бы также включить промежуточное программное обеспечение для этого статического запроса. В качестве конкретного примера я использую паспорт и хотел бы убедиться, что пользователь вошел в систему для доступа к этому статическому контенту.

+0

Непонятно, что вы хотите. Вы хотите перенаправить их вместо того, чтобы обслуживать запрошенный статический файл, или только перенаправить, если параметр запроса отсутствует, или что-то еще? – mscdex

+0

Извините за путаницу. Index.html, который будет обслуживаться из этого статического каталога, ищет параметр запроса. Я хотел бы перенаправить URL-адрес с набором параметров запроса. – lostintranslation

ответ

1

app.use (и app.get и т. Д.) Не принимает два параметра, первый параметр - маршрут (необязательный для использования), а остальные - все промежуточное.

app.use('/static-route', function (req, res, next) { 
    // validation 
    // redirect 
    // etc . . . 
    next(); 
}, express.static('./static')); 
+0

По какой-либо причине app.use ('/ static-route', express.static ('./ static')); служит index.html в статическом каталоге. Однако ваше решение с промежуточным программным обеспечением, просто вызывающим следующий, я получаю 404. Я проверил, что промежуточное программное обеспечение выполнено, и вызывается next(). – lostintranslation

+0

Кажется, ошибка в экспресс-версии я бежал. Обновлен до 4.10.6, и он отлично работает. – lostintranslation

Смежные вопросы