你知道为什么这段代码:
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 content = 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
答案 0 :(得分:2)
readContent
不会返回任何值,因此您将undefined
传递给response.write()
。您需要正确使用回调,或切换到fs.readFileSync
(不推荐)