Node.js POST请求发送两次,两次之间有一定的延迟,发送到Express route
我有一条快速路线Node.js POST请求发送两次,两次之间有一定的延迟,发送到Express route,node.js,http,express,Node.js,Http,Express,我有一条快速路线/chat/send,用于发送消息,它从会话和消息中获取用户ID。它工作正常,但我注意到请求在一段时间后再次发送,没有任何操作(我在后台做了一些事情,再次检查了控制台)。我尝试重新启动服务器并再次检查,但问题仍然存在 这是路线: app.post('/chat/send', ensureAuthenticated, (req, res) => { let id = req.user.id; let message = req.body.message;
/chat/send
,用于发送消息,它从会话和消息中获取用户ID。它工作正常,但我注意到请求在一段时间后再次发送,没有任何操作(我在后台做了一些事情,再次检查了控制台)。我尝试重新启动服务器并再次检查,但问题仍然存在
这是路线:
app.post('/chat/send', ensureAuthenticated, (req, res) => {
let id = req.user.id;
let message = req.body.message;
let currentTime = new Date().getTime();
if (message.trim() !== "") {
console.log('ID: ' + id + ' Message: ' + message + ' Time: ' + currentTime);
}
});
// here is the method for ensuring that authentication is done
let ensureAuthenticated = (req, res, next) => {
if (req.isAuthenticated()) { return next(); }
res.redirect('/');
}
这是客户端代码:
$("#send-message").on("click", function() {
$.post('/chat/send', { message: $("#chat-message").val() });
$("#chat-message").val("");
});
$("#chat-message").keypress( function(e) {
if (e.which == 13) {
$.post('/chat/send', { message: $("#chat-message").val() });
$("#chat-message").val("");
return false;
}
});
正如我所说,发生这种情况时,我不在同一个选项卡中,所以我很确定我没有单击发送消息的按钮或按Enter键
终端截图:
可以重试帖子;因为您根本没有回复请求,所以不会向浏览器发送任何响应,并且它假定请求失败。然后,它应该重试该请求,这就是这里发生的情况 要修复此问题,只需使用Express处理程序中的任何内容进行回复,即使只需调用
res.end()
参考: