3

Express で静的ファイル (html、mov、css、jpg など) を提供するには、nginx でいくつかのハックが必要になると思いました。

しかし、静的ファイルは Express で「正常に機能する」ようです。特別なものは必要ありません。

  • Express 静的ファイル サービスは実際にどのように機能しますか?

  • 静的ファイルに nginx を使用することを推奨する人がいるのはなぜですか? これには正当な理由があるはずです。(例: https://gist.github.com/joemccann/644282 )

  • また、静的ファイルのダウンロード中に、Node.js イベント キューはブロックされますか? ないと思いますが、なぜですか?

4

3 に答える 3

4

URL が (または POST などの) メソッドを介して登録したパスに属していないapp.get(/...場合、静的パスが設定されていて、指定したパスが静的ファイル ディレクトリの下のファイル パスに属している場合、Express はファイルを送信します。ファイルの送信はストリームにすぎません。イベント キューを完全にブロックするわけではありません。キューにプッシュされるだけで、チャンクが受信されると HTTP 接続にパイプされるため、コードのバックグラウンドで発生します。nginx を提案する理由は、その仕事、ファイルの提供、およびルーティングにより適しているためです。また、C で記述されており、Nginx と比較して NodeJS がより汎用的なツールであるその仕事に最適化されています。

于 2013-09-19T17:20:00.553 に答える
1

私のメインサーバーファイル(app.js)にはあります。

var express = require('express');
var app = express();
var path = require('path');
...
app.use(express.static(path.join(__dirname, 'public')));

私のフォルダは次のとおりです。

/public/js
/public/css
/public/img

これらは静的として提供されるため、変更を確認するためにアプリを再起動する必要はありません。速度とngnixについては言えませんが、Nitzan Shakedからの回答を読んだ後、ngnixを試してみます!
編集:この例では、接続が必要です(npm install connect)

于 2013-10-05T16:00:06.157 に答える