2016-05-25 3 views
0

у вас есть какие-либо идеи, почему этот код:Node 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); 
}); 

Я думаю, что ошибка лежит на содержании вара = 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 не возвращает никакого значения, поэтому вы передаете undefined к response.write(). Вам необходимо правильно использовать обратные вызовы или переключиться на fs.readFileSync (не рекомендуется)