2017-12-27 16 views
0

Node.jsコードを実行しようとしていました。コンソール上に予期しないJavaScript出力があります

var fs = require("fs"); 
 
fs.readFile('input.txt', function(err, data) { 
 
    if (err) return console.error(err); 
 
    console.log(data.toString()); 
 
}); 
 

 
console.log("Program Ended"); 
 
var http = require("http"); 
 
http.createServer(function(request, response) { 
 

 
    // Send the HTTP header 
 
    // HTTP Status: 200 : OK 
 
    // Content Type: text/plain 
 
    response.writeHead(200, { 
 
    'Content-Type': 'text/plain' 
 
    }); 
 

 
    // Send the response body as "Hello World" 
 
    response.end('Hello World\n'); 
 
}).listen(8081); 
 

 
// Console will print the message 
 
console.log('Server running at http://127.0.0.1:8081/');

私は私のラップトップ上のLinux端末上でそれを実行したときに、INPUT.TXTファイルの内容は、最後の行に「サーバーで実行」コマンドの後に登場:これはコードです。理想的には、最初にreadfileコマンドの出力があったはずです。次のように出力が出てくる

は次のとおりです。

プログラムで実行されている

サーバー....

(txtファイルの内容)

+1

なぜそれがfs.readFile'が非同期メソッドである '考えると、最初があるはずが、正しい順序ではないでしょうか? – Teemu

答えて

5

FSを終えました。 readFile()は非同期メソッドなので、コードの残りの部分より前に終了する場合もあれば終了しない場合もあります。

チェックアウトreadFileSync()

https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options

+0

このリンクは質問へのあなたの答えを助けるかもしれませんが、あなたはリンクの重要な部分を取ってあなたの答えに入れて、この答えを改善することができます、これは、リンクが変更または削除された場合、 – WhatsThePoint

関連する問題