我正在使用node.js我写了一个小代码
var http = require('http');
var options = {
hostname: 'www.google.com',
port: 80,
path: '/upload',
method: 'POST'
};
var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
// write data to request body
req.write('data\n');
req.write('data\n');
req.end();
我必须发送帖子请求开始我正在获取请求,为什么没有http.get()。在此请求中我得到404响应代码,这也是一个错误。但没有在req.on中捕获(&# 39;错误')。我想知道这个方法捕获了哪种错误?
答案 0 :(得分:0)
如果在请求期间遇到任何错误(使用DNS解析,TCP级别错误或实际的HTTP解析错误),则会在返回的请求对象上发出“错误”事件。
因此,只有在协议/连接级别出现错误时才会发出该事件。
然后,您可以在connect
电话上处理HTTP错误:
var req = http.request(options, function(res) {
if (res.statusCode == "404"){ ... }
else if (...) {
...
} else { // everything ok
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
...
}
});