2016-05-25 9 views
0

は、このコードなぜあなたはどんな考えを持っている:ノードJS非同期エラー

var http = require('http'); 
var fs = require("fs"); 
var fileDir = "file.txt"; 
var port = 8080; 
var chunk; 

var readContent = (directory) => { 
    fs.readFile(directory, (err, response) => { 
     if(err) { 
      throw(err); 
     } else { 
      return response.toString(); 
     } 
    }); 
}; 

http.createServer((request, response) => { 
    var content = readContent(fileDir); 
    console.log("Someone is visiting: ", request.url); 
    response.write(content); 
    response.end(); 
}).listen(port, function() { 
    console.log("The server is listening in port: " + port); 
}); 

が、私はエラーがVARコンテンツ= readContent(FILEDIR)にあると思います。部分。

は、この例外をスロー:

_http_outgoing.js:447 
    throw new TypeError('first argument must be a string or Buffer'); 
    ^

TypeError: first argument must be a string or Buffer 

答えて

2

readContentは、任意の値を返さないので、あなたはresponse.write()undefinedを渡しています。コールバックを正しく使用するか、fs.readFileSync(推奨しません)に切り替える必要があります

関連する問題