В моем приложении express. js у меня есть POST-маршрут (приведенный ниже). Когда пользователь отправляет запрос POST в конечную точку / response, выполняется лог c в разделе post / response, а затем пользователь перенаправляется на другую страницу. Большую часть времени этот поток работал без каких-либо проблем, но однажды я вижу, как вызывается POST, а затем сразу же вызывается GET для URL-адреса записи, что приводит к 404, и ни один из кодов в блоке post / response не выполняется
Мне интересно, не вызывает ли следующая функция какую-либо проблему, преобразуя POST в GET и не позволяя выполнить код из POST / respone?
app.use(function (req, res, next) {
res.locals.user = req.session.user
logger.log("PAGE", `Page: ${req.originalUrl}`)
next()
})
...
app.post("/response", [check('id').exists(), check('check').exists()], (req, res) => {
//logic here
return res.redirect("page2");
}
Apache log:
xx.xx.xx.xx - - [30/Mar/2020:21:30:00 -0400] "POST /response?c=val1&id=val2 HTTP/1.1" 302 263
xx.xx.xx.xx - - [30/Mar/2020:21:30:00 -0400] "GET /response?c=val1&id=val2 HTTP/1.1" **404** 15974
Редактировать: логи перенаправления c
const errors = validationResult(req)
if (!errors.isEmpty()) {
logger.log("SEV1E", "Server side validation error " + JSON.stringify(errors))
sendTranLog(req.query.id, "WC_SEV1_VALI_FAIL", "ERROR")
return res.redirect("../page?status=e&id=RESP_ERROR&redirect=true")
}
db.run(fresSql, fResVals, function (err) {
if (err) {
return console.error(err.message)
}
res.redirect("../page?status=" + respStatus + "&id=" + tuid + "&redirect=true")
})