Node.js NodeJs错误:连接ETIMEDOUT
我运行包含下面代码的Node.js NodeJs错误:连接ETIMEDOUT,node.js,http,Node.js,Http,我运行包含下面代码的节点myserver.js,40-50秒后我得到错误(下面代码)。为什么在什么都没有发生的情况下我会出错 var options = { host: 'google.com', port: '80', path: '/', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Len
节点myserver.js
,40-50秒后我得到错误(下面代码)。为什么在什么都没有发生的情况下我会出错
var options = {
host: 'google.com',
port: '80',
path: '/',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': 'post_data.length'
}
};
var subscribeRequest = require('http').request(options, function(res) {
console.log('send request');
}).on('error', function(err){console.log(err.stack)});
40-50秒后,我得到这个错误:
Error: connect ETIMEDOUT
at errnoException (net.js:904:11)
at Object.afterConnect [as oncomplete] (net.js:895:19)
我认为至少有两件事不对:
http.request()
时,必须在发送完任何数据后对返回的请求对象调用.end()
,以便服务器知道没有更多数据http.get()
自动为您调用.end()
,因为没有包含get请求的实体'Content-Length':'post\u data.Length'
应该是'Content-Length':post\u data.Length
声明请求后,必须调用
subscribeRequest.end()
!如果您不这样做,您的请求将永远不会被发送,但我从未调用此函数?我不明白它什么时候着火,你说的第二点是对的。你能提供1的代码片段吗?假设你确实有post\u数据
,你就要做subscribeRequest.end(post\u数据)代码>。这将发送您的表单数据并发出您的请求结束的信号。然后您应该会从服务器得到某种响应。@mscdex我正在使用express js和邮戳smtp服务执行日历事件,尽管我在上声明了res.end(),但收到的错误是{[error:connect-ETIMEDOUT 50.31.225.155:2525]代码:'ECONNECTION',错误号:'ETIMEDOUT',系统调用:'connect',地址:'50.31.225.155',端口:2525,命令:'CONN'}当服务器拒绝您的请求时也会发生这种情况。例如,如果您向服务器发出许多请求,它们可能会在一段时间后阻止您并导致此错误。