我正在使用带有node.js的jsdom,我试图让它为我提供一些http错误已经发生的迹象。我已经设置了一个测试服务器,只为所有请求返回一个http 500标头,但当我尝试使用jsdom加载它时,jsdom不会抛出任何错误,似乎没有提供任何可识别的信息返回了http 500错误。检测http 500错误的最佳方法是什么?
答案 0 :(得分:8)
我看起来像jsdom没有检查状态代码。 Node的HTTP模块不会将500个状态代码视为错误,因此jsdom认为它们是正确的响应。
我建议你在使用jsdom之前自己测试状态代码并将jsdom传递给你的响应主体,即:
var jsdom = require('jsdom').jsdom;
var request = require('request'); //jsdom already uses request*
request("http://www.google.com/", function (err, response, body) {
if (!err && response.statusCode == 200) {
jsdom.env(body, function (errors, window) {
// your code
});
}
});