【问题标题】:node.js and jsdom - no way to detect that an http 500 error was returned?node.js 和 jsdom - 无法检测到返回了 http 500 错误?
【发布时间】:2012-10-17 05:17:01
【问题描述】:

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

【问题讨论】:

    标签: node.js jsdom


    【解决方案1】:

    我看起来 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

    【讨论】:

    猜你喜欢
    • 2014-04-16
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    相关资源
    最近更新 更多