Node.js 发送后无法设置标题:response.redirect()NodeJS
我需要使用differentsNode.js 发送后无法设置标题:response.redirect()NodeJS,node.js,Node.js,我需要使用differentsresponse.redirect(),但我的控制台出现了一个错误 错误代码:未处理的拒绝错误[ERR\u HTTP\u HEADERS\u SENT]:发送到客户端后无法设置头 我的代码: // on vérifie si max par semaine atteint si c'est le cas on supprime la resa if (moment(createdItem.date).isSame(new Date(), 'week'
response.redirect()
,但我的控制台出现了一个错误
错误代码:未处理的拒绝错误[ERR\u HTTP\u HEADERS\u SENT]:发送到客户端后无法设置头
我的代码:
// on vérifie si max par semaine atteint si c'est le cas on supprime la resa
if (moment(createdItem.date).isSame(new Date(), 'week')) {
createdItem.destroy().then(function() {
request.flash('danger', 'Total de réservation maximum par semaine atteint');
response.redirect('/user/__show');
});
}
// dans le cas d'un abonnement trouvé on touche pas aux cartes
if (findedRpaUserServiceSub) {
request.flash('success', 'Réservation ajoutée');
response.redirect('/user/__show');
}
// si on trouve une carte mais sans abonnement
if (findedRpaUserServiceCard) {
if ((findedRpaUserServiceCard.remaining_services - 1) === 0) {
findedRpaUserServiceCard.destroy().then(function() {
request.flash('success', 'Réservation ajoutée');
response.redirect('/user/__show');
});
} else {
findedRpaUserServiceCard.update({
remaining_services: findedRpaUserServiceCard.remaining_services - 1
}).then(function() {
request.flash('success', 'Réservation ajoutée');
response.redirect('/user/__show');
});
}
}
您正在多次重定向用户。这些如果不是排他性的。您应该至少使用else if
语句
// on vérifie si max par semaine atteint si c'est le cas on supprime la resa
if (moment(createdItem.date).isSame(new Date(), 'week')) {
createdItem.destroy().then(function() {
request.flash('danger', 'Total de réservation maximum par semaine atteint');
response.redirect('/user/__show');
});
}
// dans le cas d'un abonnement trouvé on touche pas aux cartes
else if (findedRpaUserServiceSub) {
request.flash('success', 'Réservation ajoutée');
response.redirect('/user/__show');
}
// si on trouve une carte mais sans abonnement
else if (findedRpaUserServiceCard) {
if ((findedRpaUserServiceCard.remaining_services - 1) === 0) {
findedRpaUserServiceCard.destroy().then(function() {
request.flash('success', 'Réservation ajoutée');
response.redirect('/user/__show');
});
} else {
findedRpaUserServiceCard.update({
remaining_services: findedRpaUserServiceCard.remaining_services - 1
}).then(function() {
request.flash('success', 'Réservation ajoutée');
response.redirect('/user/__show');
});
}
}
else {
// something else
}
您还可以在每个if中添加一个return
,以停止进一步的处理,或者在使用expressjs转到下一个中间件时使用next()
。好的,谢谢。如果
,它可以与一起使用。