У меня есть промежуточное программное обеспечение в приложении Express/Node.js для защиты определенного маршрута.Быстрое промежуточное программное обеспечение подразумевает тайм-аут запроса
Дело в том, когда я использую это промежуточное программное обеспечение, я получаю тайм-аут запроса, если credentals проверить неправильно
Вот код, который я в настоящее время используют:
var express = require('express');
var bodyParser = require('body-parser');
// Set Header because cross-domain call
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://docker.local");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Authorization, Content-Type, Accept");
next();
});
function checkAuth(req, res, next){
if(// Credentials right){
next();
} else {
// If code enter in that case, it will generate a Timeout
// even with next(); ...
}
}
// Use checkAuth to protect route
app.get('/server', checkAuth, getMessages);
app.get('/', function(req, res){
res.status(200).send('Slack Server is listening for outgoing webhooks ...');
});
Вопрос: почему я получить этот тайм-аут?
EDIT
Если я запрос GET с помощью браузера, то у меня есть тайм-аут запроса. Однако, если я инициирую запрос GET по-другому, тогда я не получаю никакого таймаута и код работает. Возможно ли, что GET /favicon
каким-то образом испортили этот материал?
Иногда, я просто хочу, чтобы ударить меня в лицо ... Спасибо большое! – Mornor
** Редактировать ** Работайте в случае правильных учетных данных, но не перенаправляйте ('res.redirect ('/')'). Любая причина? – Mornor
Обновите свой вопрос с помощью нового кода, но я предполагаю, что вы вызываете следующее * и * перенаправление, которое должно завершиться неудачей с ошибкой «headers alreadybsent». – Paul