Tag: readfile

NodeJS读取dynamic目录

我正在制作一个从目录中读取文本文件的工具。 我正在使用NodeJS fs.readdir和fs.readFile函数。 问题是,如果我添加一个新的文件夹,我必须再次运行服务器。 你有什么build议如何使其dynamic而无需重新启动服务器?

Node.js Web服务器fs.createReadStream vs fs.readFile?

所以我正在写我的web服务器在纯node.js,只使用bluebird promisify 。 这一直困扰我一个星期,我不能决定我应该使用哪一个。 我已经阅读了大量关于这两个主题的post,博客和文档,请根据您自己的工作经验回答,谢谢。 这里有详细的总结和相关的问题。 两种方法都经过testing,它们都很好。 但是我不能testing性能,我只有自己的基本网站文件(html,css,img,小型数据库等),而且我从来没有pipe理过的video文件和庞大的数据库。 下面是代码部分,给你一些基本的想法(如果你真的知道使用哪一个,不用费心去阅读代码,为了节省一些时间),这个问题不是关于逻辑,所以你可以阅读虚线。 关于fs.createReadStream : 优点:对于大文件很好,它一次读取一个块,节省内存和pipe道真的很聪明。 缺点:同步,不能被promisified(stream是一个不同的概念承诺,太难做,不值得)。 //please ignore IP, its just a custom name for prototyping. IP.read = function (fpath) { //—————————————————- let file = fs.createReadStream(fpath); file.on('error', function () { return console.log('error on reading: ' + fpath); }); return file; //—————————————————- }; //to set the response of onRequest(request, […]

阅读json文件忽略自定义评论

我怎样才能读取这个文件'file.json': # Comment01 # Comment02 { "name": "MyName" } 并检索json没有评论? 我正在使用这个代码: var fs = require('fs'); var obj; fs.readFile('./file.json', 'utf8', function (err, data) { if (err) throw err; obj = JSON.parse(data); }); 它返回这个错误: SyntaxError: Unexpected token # in JSON at position 0 有没有npm一些包来解决这个问题?

通过NodeJS加载JS文件和HTML文件的正确方法

我不能得到所服务的defualt.htm页面头部的内容“工作”。 在DOM加载的HTML,只是CSS和JS文件失败。 有更好的select吗? 编号喜欢保持在NodeJS内的解决scheme,但也可以打开socket.io并表示。 谢谢,下面是即时通讯使用。 NodeJS服务页面 var http = require('http'), fs = require('fs'); fs.readFile(__dirname+'/default.htm', function (err, html) { if (err) { throw err; } http.createServer(function(request, response) { response.writeHeader(200, {"Content-Type": "text/html"}); response.write(html); response.end(); }).listen(port.number); }); Default.html页面 <!DOCTYPE html> <html> <head lang="en"> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" href="objects/css/site.css" type="text/css" /> <script src="objects/js/jquery.min.js" type="text/javascript"></script> <script src="objects/js/site.min.js" type="text/javascript"></script> […]

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(); […]