Node.js 为什么节点中的此readFile操作会引发错误?
我在节点服务器上使用socket.io获得以下代码:Node.js 为什么节点中的此readFile操作会引发错误?,node.js,Node.js,我在节点服务器上使用socket.io获得以下代码: io.sockets.on( 'connection' ,function (socket) { reader = require('fs'); fileContents = reader.readFile(__dirname + '/textCharacters.txt' ,'utf8'
io.sockets.on(
'connection'
,function (socket) {
reader = require('fs');
fileContents = reader.readFile(__dirname + '/textCharacters.txt'
,'utf8'
,function(data, err) {
if (err) throw err;
console.log(data);
}
);
socket.emit('retrievedFileContent', {content:fileContents} );
}
);
当我检查节点服务器调试时,错误显示文件的内容,因此我知道文件正在读取,但为什么不将其返回到fileContents
变量?因为没有返回文件内容,它将其作为第二个参数传递给给定的回调函数。尝试修改代码,如下所示:
var fs=require('fs');
io.sockets.on('connection',函数(socket){
var filename=_dirname+'/textCharacters.txt';
fs.readFile(文件名'utf8',函数(错误,数据){
如果(错误)抛出错误;
emit('retrievedFileContent',{content:data});
});
});