node.js和jsdom - 无法检测到返回了http 500错误?

时间:2012-10-17 05:17:01

标签: node.js jsdom

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

1 个答案:

答案 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
    });
  }
});

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