1

モジュールのテスト スクリプトを作成していて、リクエストが完了したらサーバーを閉じる必要があります。次のコードは機能しますが、app.close() が Express 3 から削除されたことがわかります。

var testCase = require('nodeunit').testCase;
var request = require('request');
var express = require('express');

var app = express.createServer();
var srv = app.listen();
....

request({
    method: 'POST',
    json: true,
    body: { id: 'second request'},
    url: 'http://' + target
  }, function(err, res, body) {

    console.info("closing server");
    app.close();
    test.done();
  });
});

ありがとう、リー

サーバーを閉じた後に ps test.done() を呼び出す必要があります。そうしないと、テストは失敗します。

4

1 に答える 1

2

Express アプリケーションは、以前は から継承していましたが、現在は継承しhttp.Serverていませんclose。メソッドの由来はそこにあります。代わりに、インスタンスを呼び出しclose()ます。srv通常、このコードは次のように記述されています。

var app = express.createServer();
var srv = require('http').createServer(app);
srv.listen(port);

のドキュメントによるとapp.listen()

指定されたホストとポートで接続をバインドしてリッスンします。このメソッドはノードのhttp.Server#listen().

于 2012-11-08T17:06:44.230 に答える