Node.js 向sendgrid API发出请求时出现ETIMEDOUT错误
我正在使用NodeJS请求模块通过sendgrid发送电子邮件。我正在找出错误。我打算使用Node.js 向sendgrid API发出请求时出现ETIMEDOUT错误,node.js,request,sendgrid-api-v3,Node.js,Request,Sendgrid Api V3,我正在使用NodeJS请求模块通过sendgrid发送电子邮件。我正在找出错误。我打算使用节点重试npm模块重试发送,但如何检测错误代码?sendgrid API是否以某种方式返回错误代码?另外,当我检测到错误代码时,是否只需等待X秒即可再次发送电子邮件?如果是,我如何确定X是什么 _makeAPIRequest (httpMethod, url, body) { var defer = Q.defer(); var options = { method: htt
节点重试
npm模块重试发送,但如何检测错误代码?sendgrid API是否以某种方式返回错误代码?另外,当我检测到错误代码时,是否只需等待X秒即可再次发送电子邮件?如果是,我如何确定X是什么
_makeAPIRequest (httpMethod, url, body) {
var defer = Q.defer();
var options = {
method: httpMethod,
url: this.SENDGRID_API_URL + url,
headers: {
'content-type': 'application/json',
authorization: 'Bearer ' + SENDGRID_API_KEY
},
body: body,
json: true
};
request(options, function (error, response, body) {
if (error) {
console.dir(error);
return defer.reject(error);
}
defer.resolve(body);
});
return defer.promise;
}
ETIMEDOUT
是一条操作系统错误消息。它表示在TCP/IP级别连接到远程主机(可能是中提到的主机)的尝试失败
其默认值为https://api.sendgrid.com/v3/
。出于某种原因,可能是出站防火墙或某种网络配置问题,您的nodejs程序无法访问该URL,并等待响应。您应该检查该URL的值
如果这是间歇性的(并非总是发生),您可能可以等待几秒钟,然后重试
如果在你发送了一大堆电子邮件之后,这种情况就开始发生了,那么你可能在sendgrid达到了一个极限。加快发送电子邮件的速度;试着在它们之间延迟半秒