我想将文件打印到 res.write()
方法,但出现错误:
TypeError: First argument must be a string or Buffer
我的代码:
var fs = require("fs");
var http = require("http");
http.createServer(function (req, res){
res.write(getData());
res.end();
}).listen(3333);
function getData(){
fs.readFile('testfs.txt', function(err, data){
if(err)
{
console.log("Error: " + err);
}else {
console.log(data.toString());
return data.toString();
}
});
}
有什么问题吗?
res.write
未获取字符串或缓冲区,因为您的函数 getData
不是异步的。这是我希望能够解决您的问题的修复:
http.createServer(function (req, res){
getData(function(data){
res.write(data);
res.end();
}));
}).listen(3333);
function getData(cb){
fs.readFile('testfs.txt', function(err, data){
if(err)
{
console.log("Error: " + err);
}else {
cb(data.toString());
}
});
}
其中cb
参数显然是一个回调函数。
我是一名优秀的程序员,十分优秀!