如何添加到节点中的文件?
我试着
添加
行到日志文件。 但 writeFile 在录制字符串之前,它将每次删除内容。
有想法如何让它更容易?
添加
行到日志文件。 但 writeFile 在录制字符串之前,它将每次删除内容。
fs.writeFile/'log.txt', 'Hello Node', function /err/ {
if /err/ throw err;
console.log/'It\'s saved!'/;
}/; // => message.txt erased, contains only 'Hello Node'
有想法如何让它更容易?
没有找到相关结果
已邀请:
17 个回复
风见雨下
赞同来自:
, 每次调用时都会创建新的文件句柄:
https://nodejs.org/api/fs.html ... lback
:
https://nodejs.org/api/fs.html ... tions
:
但是如果你增加了多次到同一个文件,更好
https://coderoad.ru/3459476/
.
郭文康
赞同来自:
绝不
不使用
,
为您添加到文件的每个数据片段打开文件描述符,之后一段时间才能获得一个漂亮的错误
.
我可以补充一点
不容易使用
.
例子
:
到 8000 在我的电脑上,您可以将数据添加到文件中,然后获取:
除了,
将在启用时写入,因此不会记录您的日志 timestamp. 您可以使用示例进行检查,安装 1000 反而 100000, 订单将随机取决于访问该文件。
如果要添加文件,请您
应该
使用如下所示的录制流:
你想要的时候可以用它完成。 你甚至不必使用
, 默认情况下,选项
, 所以您的文件将在您的进程结束时结束,并且您将避免打开太多文件。
喜特乐
赞同来自:
石油百科
赞同来自:
, 你也可以通过国旗
, 将数据添加到现有文件。
当通过旗帜时 'a' 数据将添加到文件的末尾。
君笑尘
赞同来自:
以下是一些有助于解释参数的链接。
http://nodejs.org/api.html#fs-open-134
http://nodejs.org/api.html#fs-write-137
http://nodejs.org/api.html#fs-close-132
EDIT
: 此答案不再有效,查看新方法
http://nodejs.org/api/fs.html% ... lback
添加。
风见雨下
赞同来自:
:
文件:
http://nodejs.org/docs/latest/ ... lback
风见雨下
赞同来自:
喜特乐
赞同来自:
https://github.com/jprichardson/node-fs-extra
:
用node验证 v8.9.4.
裸奔
赞同来自:
, 但实际上我不使用 'closing' fd, 使用
. 相反,我使用
/
. 这给了低使用的优势 RAM /如果对某人而言/, 我相信使用用于伐木更安全/参赛作品 /我的初始使用选项/.
以下是一个相当简单的例子。 请注意,我刚刚添加了一个伪周期
用于展示制造代码,我正在等待消息 websocket.
将数据重置为下一个勾号中的文件。
在我的剧本中,有峰值 ~200 各种大小的每秒记录。 但是,在晚上,您只需每分钟几个记录。 即使在高峰时间内,代码也非常可靠地工作。
二哥
赞同来自:
然后
添加许多记录到它。 - 在这种情况下,使用标志 'w' 打开文件并不关闭它,直到所有记录都进行。 当然, appendFile 也许你在寻找什么 :-/
郭文康
赞同来自:
龙天
赞同来自:
或者
- 这是当您需要向文件添加内容时最快,最可靠的选项。
与一些提出的答案不同,如果传输文件的路径
,
它实际上它本身就会关闭
. 只有当您通过文件句柄时,您就可以获得类似的东西
, 你必须照顾它的关闭。
我试图用的不仅仅是这样做 50 000 文件中的行。
例子 :
https://i.stack.imgur.com/9L3hy.gif
关联:
https://github.com/nodejs/node/issues/7560
执行示例:
https://github.com/apickjs/api ... es.js
诸葛浮云
赞同来自:
这里
https://www.youtube.com/watch?v=UxOpmMrZBto
根据脚本的逻辑。
喜特乐
赞同来自:
喜特乐
赞同来自:
denysonique , 有时使用异步类型。
和其他异步方法 NodeJS, 在哪里 promise 返回而不是传输回调。 为此,您需要将功能包装
HOF 或从名称空间导入异步函数 promises:
我希望它会有所帮助
奔跑吧少年
赞同来自:
江南孤鹜
赞同来自:
将数据添加到文件中