Tag: fs

节点:fs write()不写入内部循环。 为什么不?

我想创build一个写入stream,并写入到我的数据进来。但是,我能够创build该文件,但没有写入它。 最终,这个过程耗尽内存。 我发现的问题是我在循环中调用write()。 这是一个简单的例子: 'use strict' var fs = require('fs'); var wstream = fs.createWriteStream('myOutput.txt'); for (var i = 0; i < 10000000000; i++) { wstream.write(i+'\n'); } console.log('End!') wstream.end(); 什么都不会写,甚至不是你好。 但为什么? 如何在循环内写入文件?

ENOENT使用fs.appendFile()

我正试图追加数据到一些文件。 Docs说fs.appendFile : 将数据asynchronous追加到文件,如果文件尚不存在,则创build文件,数据可以是string或缓冲区 function appendData(products) { var productsPromises = products.map(function(product) { var title = product['title']; return fs.appendFile('/XXXXX/' + title, product, 'utf8', function(err){ console.log(err); }); }); return Promise.all(productsPromises); } 我越来越错误: ENOENT,打开“/ XXXXX / PPPPPPPP” 我究竟做错了什么?

fs模块函数使用的当前目录是什么?

在典型的node.js / Express应用程序中调用fs模块中的方法时,当前目录是什么? 例如: var fs = require('fs'); var data = fs.readFile("abc.jpg", "binary"); 什么是用于定位abc.jpg的默认文件夹? 它依赖于包含脚本的文件夹位置? 有没有一种方法来查询当前目录? 我的文件结构是: ExpressApp1/ app.js routes/ members.js 在members.js中我有一个fs.createWriteStream("abc")和文件abc在ExpressApp1/

如何在Node.js中读取文件?

在Node.js中,我想读一个文件,然后用\n分隔文件的每一行console.log() 。 我怎样才能做到这一点?

fs.js中的`process.binding('fs')是什么?

我在fs.js顶部看到了一个process.binding('fs') 。 https://github.com/nodejs/node/blob/master/lib/fs.js#L10 : const binding = process.binding('fs'); 然后,它被用作: binding.open(pathModule._makeLong(path), stringToFlags(flag), 0o666, req); (在https://github.com/nodejs/node/blob/master/lib/fs.js#L303-L306 ) 我的问题是: process.binding('fs')是什么意思? 这里是什么fs (我们已经在fs.js )? 我在哪里可以findbinding.open的源代码? 是Javascript代码还是c / c ++代码?

在fs.writeFile()中,“选项参数”通常如何工作?

我正在阅读有关Node.js文件系统, fs.writeFile(filename, data, [options], callback)这个文件。 所以我注意到我经常看到[options],但从来没有用过它。 有人能给我一个例子吗? 我所有的情况都没有使用这个选项。

我如何使用FS自动创build一个文件夹?

我试图用代码来读取一个数组,并使用名称作为参数之一,如果该名称不存在创build文件夹。 我一直在用fs来做一个简单的循环,像这样 var streamsRepository = streamsRepositoryFactory(__dirname + '/streams.json'); var obj = streamsRepository.streams[i]; var i; for(i = 0; i < streamsRepository.streams.length; i++) { var obj = streamsRepository.streams[i]; console.log('Folder '+obj.key+' is Created'); if (!fs.existsSync('../audio/'+obj.key)){ fs.mkdirSync('../audio/'+obj.key); } } 但每次我都收到这个消息。 Folder AAAA is Created fs.js:796 return binding.mkdir(pathModule._makeLong(path), ^ Error: ENOENT: no such file or directory, mkdir '../audio/AAAA'

如果文件不存在,则创build一个文件

我想创build一个文件foobar 。 但是,如果用户已经有一个名为foobar的文件,那么我不想覆盖它们。 所以我只想创buildfoobar如果它不存在。 起初,我认为我应该这样做: fs.exists(filename, function(exists) { if(exists) { // Create file } else { console.log("Refusing to overwrite existing", filename); } }); 但是,看fs.exists的官方文档 ,它写道: fs.exists()是一个时代错误,只存在于历史原因。 几乎从来没有理由在你自己的代码中使用它。 特别是,在打开文件之前检查文件是否存在是一种反模式,使您容易受到竞争状况的影响:另一个进程可能会在调用fs.exists()和fs.open()之间删除文件。 只要打开文件,并处理不存在的错误。 fs.exists()将被弃用。 显然,节点开发人员认为我的方法是一个坏主意。 另外,我不想使用将被弃用的函数。 我怎样才能创build一个文件,而不写一个现有的?

asynchronous读取和cachingnodejs中的多个文件

我有一个数组保持几个文件的URL。 例如: var files = ['1.html', '2.html', '3.html']; 我需要asynchronous读取它们并将它们保存在名为cache(cache = {})的对象中。 要做到这一点,我使用的代码是: for(var i = 0; i < files.length; i++){ require('fs').readFile(files[i], 'utf8', function (error,data) { cache[files[i]]=data; }); } 最后我得到的结果是: cache = { undefined : 'File 3 content' } 我明白,循环结束后,“readFile”会起作用,并且会失去范围。 有没有办法解决这个或另一种方法来读取数组中的文件并caching它们?

使用node.js更改文件

我有一个如下所示的文本文件: ./4F6cFLnAAFc.png ./4Flj9plmKGQ.png ./4fQeHtSdw80.png ./4I9iibPLdBw.png ./4J-dRA3MGc8.png ./4mdEsouIXGM.png ./4-_-wQc3EGE.png ./595Tiga1gIg.png ./60u_ctp6UIw.png ./64bH_27Ehoc.png ./64_ZfIemRGM.png ./66pQLO–Ghk.png ./69rDtSpshAw.png ./69-YUSazuic.png 我想replace. 在每行使用node.js的'myString'的开头。 所以每个最终会看起来像: myString/4F6cFLnAAFc.png 我正在尝试使用正则expression式,但我怀疑它可以使用读取和写入stream。 var fs = require('fs'); fs.readFile('filelist.txt', 'utf-8', function(err, data){ if (err) throw err; console.log(typeof(data)); // string data.replace(/\.\/+/, 'myString'); }); 什么正则expression式将工作或什么是使用节点编辑此文件的最佳方式?