4

node.jsでjsdomを使用していて、httpエラーが発生したことを示すためにjsdomを取得しようとしています。すべてのリクエストに対してhttp500ヘッダーを返すだけのテストサーバーをセットアップしましたが、jsdomを使用してロードしようとすると、jsdomはエラーをスローせず、識別できる情報を提供しないようです。 http500エラーが返されたこと。http 500エラーを検出するための最良の方法は何ですか?

4

1 に答える 1

8

jsdomはステータスコードをチェックしていないようです。500ステータスコードは、ノードの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 に答える