gpt4 book ai didi

node.js - 在 req.on ('' 错误上捕获了哪种类型的错误)

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:45 25 4
gpt4 key购买 nike

我正在使用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();

我必须发送post请求才能开始,我正在发出get请求,为什么没有http.get()。在这个请求中,我收到404响应代码,这也是一个错误。但没有在req.on('error')中捕获。我想知道这个方法捕获了哪种错误??

最佳答案

来自http.request documentation :

If any error is encountered during the request (be that with DNS resolution, TCP level errors, or actual HTTP parse errors) an 'error' event is emitted on the returned request object.

因此,该事件可能仅在协议(protocol)/连接级别出现错误时才会发出。

然后您可以在 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));
...
}
});

关于node.js - 在 req.on ('' 错误上捕获了哪种类型的错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19181227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com