2011-12-14 6 views
0

エクスプレスサーバーを作成するファイルがあります。さんはfoo_serever.coffeehttpではなく、直接Expressアプリケーションにリクエストを送信できますか?

# foo_server.coffee 
module.exports = express.createServer() 

それを呼ぶことにしましょうそして今、私はそれを必要とし、それはJavaScriptで直接要求し送信します。

app = require './foo_server' 
app.sendRequest 'get', '/some/url.html', (status, body, headers) -> 
    console.log 'yay' if status is 200 

これを行う方法はあります(私はちょうどそれのようなものをしたいsendRequestが本当の方法ではありません、注意してください)?または、別のプロセスとしてそれを生成し、HTTP経由で要求を送信する必要があります。これははるかに苦痛のようです。

答えて

1

短い答え:いいえExpressは、唯一の真のHTTPサーバではなく、シミュレートされたものとして動作します。テストのためにrequestのようなライブラリを使用してください。 HTTPリクエストを送信するための別のプロセスを起動する必要はありません。

+0

*額を叩く*。なぜ私はプロセスを生成する必要があると思ったのかわかりません。そして、リクエストするリンクに感謝します。ちょうど私が必要なもの。 –

0

私はこれがエクスプレスフレームの作業を通してそれを行うのと同じくらいエレガントではないことを知っていますが、Nodejs httpモジュールが任意のサイトへのHTTP要求を可能にし、ヘッダーとホストを提供できることを知っています。

詳細と例については、ノードhttpのマニュアルを参照してください。

http://nodejs.org/docs/v0.6.5/api/http.html#http.get

+0

これは私のバックアップ計画です。しかし、ちょうど私がJSからの要求をして、いくつかのJSを応答で実行できるように、ポートでJSの動力を与えたサーバーを起動するのはばかげているようです。 –

+0

jsサーバーを作成していません。 httpモジュールが必要ですし、エクスポートしたメソッドの1つを使用しています。 –

1

TrevorはMikealのrequestライブラリーをテスト用に、LearnboostのTobiを「jQueryでサーバー側の機能テストを表現する」に使用することができます。

関連する問題