Articles of readfile

Node.JS中的createReadStream

所以我用fs.readFile(),它给了我 “致命错误:CALL_AND_RETRY_LAST分配失败 – 进程内存不足” 由于fs.readFile()在调用callback之前将整个文件加载到内存中,我应该使用fs.createReadStream()吗? 这就是我以前用readFile做的事情: fs.readFile('myfile.json', function (err1, data) { if (err1) { console.error(err1); } else { var myData = JSON.parse(data); //Do some operation on myData here } } 对不起,我对stream式传输很陌生。 下面是正确的方式来做同样的事情,但与stream? var readStream = fs.createReadStream('myfile.json'); readStream.on('end', function () { readStream.close(); var myData = JSON.parse(readStream); //Do some operation on myData here }); 谢谢

从fs.readFileSync()到fs.readFile()的Node.js

我试图让我的头在Node.js同步与asynchronous,尤其是阅读一个HTML文件。 在请求处理程序中,我正在使用的同步版本,其工作原理如下: var fs = require("fs"); var filename = "./index.html"; var buf = fs.readFileSync(filename, "utf8"); function start(resp) { resp.writeHead(200, {"Content-type":"text/html"}); resp.write(buf); resp.end(); } exports.start=start; 什么版本使用readFile()? 我明白,readFile是asynchronous的,所以理论上我应该等待整个文件在呈现之前被读取,所以我应该引入一个addListener? 我可能会混淆不同的东西。 编辑:我试图重构这样的代码: var fs = require("fs"); var filename = "./index.html"; function start (resp) { resp.writeHead(200, {"Content-Type":"text/html"}); fs.readFile(filename, "utf8", function (err, data) { if (err) throw err; resp.write(data); }); resp.end(); […]