当向我的应用程序抛出请求时,我向另一个Web服务器发送请求。但有时候,我收到了一些我以前从未见过的奇怪的解析错误。
以下是解析错误的样子:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Parse Error
at Socket.ondata (http.js:1150:24)
at TCP.onread (net.js:354:27)
这是我用来发送请求的代码:
var request = http.request(options);
request.end();
request.on('response', function (response) {
response.on('end', function () {
console.log('Response received');
}
}
我遇到的问题是如何缓解此问题,以便在发生此错误时再次抛出请求?
答案 0 :(得分:0)
首先,您应该将所有.on()
听众放在.end()
之前,因为并非所有API nextTick
都是.end()
方法。
第二,如果你没有.on('error')
监听器,节点的事件发射器会抛出错误。所以你的代码看起来应该更像这个
var request = http.request(options)
request.on('response', function (response) {
response.on('end', function () {
console.log('Response received.')
})
response.on('error', function (err) {
console.log('I got a response error.')
console.error(err.stack)
})
})
request.on('error', function (err) {
console.log('I got a request error.')
console.error(err.stack)
})
request.end()