2017-11-21 12 views
0

私はfs.readFileSync()を使用してファイル.htmlを読み、それが動作しています。しかし、私はfs.readFile()を使うと問題があります。その問題を解決する手助けをしてください。ありがとうfs.readFileを使用してノードjsのファイル.htmlを読む方法

fs.readFileSync();を使用します。

var http = require("http"); 
var fs = require("fs"); 
http.createServer((req, res) => { 
    res.writeHead(200, { 
     "Content-type": "text/html" 
    }); 
    var html = fs.readFileSync(__dirname + "/bai55.html", "utf8"); 
    var user = "Node JS"; 
    html = html.replace("{ user }", user); 
    res.end(html); 
}).listen(1337, "127.0.0.1"); 

enter image description here

fs.readFile()を使用します。それはhtmlファイルを読むことができません、なぜですか?

var http = require("http"); 
var fs = require("fs"); 
http.createServer((req, res) => { 
    res.writeHead(200, { 
     "Content-type": "text/html" 
    }); 
    var html = fs.readFile(__dirname + "/bai55.html", "utf8"); 
    var user = "Node JS"; 
    html = html.replace("{ user }", user); 
    res.end(html); 
}).listen(1337, "127.0.0.1"); 

enter image description here

答えて

0

ルックはnodejsの基本的な概念と関係していますこの:非同期I/O操作。つまり、I/Oを実行している間、プログラムは実行を継続できます。あなたのファイルからのデータが準備が整うと直ちに、それはコールバックでコードによって処理されます。つまり、関数は値を返しませんが、最後の操作で取得したデータまたはエラーを渡すコールバックを実行するためです。これは、ノードの一般的なパラダイムであり、非同期コードを処理する一般的な方法です。 readFileの適切な呼び出しはそうです

fs.readFile(__dirname + "/bai55.html", function (err, html) { 
    if (err) throw err; 
    var user = "Node JS"; 
    html = html.replace("{ user }", user); 
    res.end(html); 
}); 
0

ためのコールバックのreadFileの使用と、すぐにデータを返しません。 node documentation

fs.readFile('/etc/passwd', (err, data) => { 
    if (err) throw err; 
    console.log(data); 
}); 
関連する問題