4

我将 jsdom 与 node.js 一起使用,我试图让它为我提供一些指示,表明发生了 http 错误。我已经设置了一个测试服务器,它只为所有请求返回一个 http 500 标头,但是当我尝试使用 jsdom 加载它时,jsdom 不会抛出任何错误,并且似乎没有向我提供任何可以识别的信息返回了 http 500 错误。检测 http 500 错误的最佳方法是什么?

4

1 回答 1

8

我看起来 jsdom 不检查状态代码。500 状态码不被 Node 的 HTTP 模块视为错误,因此它们被 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
    });
  }
});

[*] 请求模块:https ://github.com/mikeal/request

于 2012-10-20T20:34:41.480 回答