私はnode.jsを学習しており、MVCアーキテクチャを中心にマイクロアプリケーションを構築しています。node.jsに複数のファイルを同期的にロードする
URIに基づいてコントローラをロードするrouter.jsファイルがあります。これは、ほとんどの場合、「fs」モジュールを使用してビューをロードします。ビューは、Webページ(基本的にhead、body、&フッター)を構成するHTML要素で、という3つのファイルとして表示されます。ここで
は、コントローラのコードです:var load_view = 'test.html';
function data(response, request, fs){
response.writeHead(200, {"Content-Type": "text/html"});
var count = 0;
var handler = function(error, content){
count++;
if(error) console.log(error);
else response.write(content);
if(count==3) response.end();
}
fs.readFile('view/elements/head.html', handler); // should load 1st
fs.readFile('view/'+load_view, handler); // should load 2nd
fs.readFile('view/elements/footer.html', handler);// should load 3rd
}
exports.data = data;
あなたはHTML要素が(head.html、このコントローラの後、特定のビューの順序でロードするようになっている見ることができるように - test.htmlという、その後、 footer.html)。しかし、時にはそうではありません。
ほとんどの場合、頭、体、フッターの順番で読み込まれます。
「ヘッド、フッタ、ボディ」としてロードされることがあります。
「ボディ、ヘッド、フッタ」
他の設定ではロードされません。
添付のスクリーンショットをご覧ください。
イムここで何が起こっているのかわかりません。これらのファイルは、順番どおりに読み込まれますが、読み込まれるのはなぜですか?
- 私はintentiallyあなたが非同期要求に対する応答の順序についての仮定をすることはできません目的
非常に有益な答えとコードの作品!ありがとうございました!! – yevg