【问题标题】:Node fs.writeFileSync error节点 fs.writeFileSync 错误
【发布时间】:2018-11-29 10:37:51
【问题描述】:

我目前正在学习 Node.JS 课程,我们正在使用 fs.writeFileSync() 通过终端读取、写入、保存和编辑用户的输入数据。它适用于只有几句长的文本,但任何更大的文本都不会运行代码,而是节点终端 (>) 开始运行。

我对 node.js 有基本的了解,但不知道为什么会这样。 非常感谢任何帮助。谢谢。

代码如下,

const fs = require('fs');

var originalNote = {
    title: process.argv[2],
    body: process.argv[3],
};

var originalNoteString = JSON.stringify(originalNote);

fs.writeFileSync('Notes.json', originalNoteString);

var noteString = fs.readFileSync('Notes.json');

var Note = JSON.parse(noteString);

console.log(typeof (Note));
console.log(originalNoteString);
console.log(Note.title);
  • 终端输出 1-

Viveks-MacBook-Pro:playground Vivek$ 节点 JSON.js 'Lorem Ipsum' 'ldfdfefnhebfhbfhrbfherbfhrbfhrefocalStorage fefef fede'

对象

{"title":"Lorem ipsum","body":"ldfdfefnhebfhbfhrbfherbfhrbfhrefocalStorage fefef 联邦”}

  • 终端输出2-

Viveks-MacBook-Pro:playground Vivek$ 节点 JSON.js 'Lorem Ipsum' 'Lorem Ipsum 只是印刷和排版行业的虚拟文本。 Lorem Ipsum 自从 1500 年代,一位不知名的打印机拿了一个类型的厨房并打乱了它 制作一本类型样本书。它不仅存活了五个世纪, 也是电子排版的飞跃,基本上保持不变 不变。它在 1960 年代随着 包含 Lorem Ipsum 段落的 Letraset 表,以及最近的 使用 Aldus PageMaker 等桌面排版软件,包括 版本的 Lorem Ipsum'

'>'

【问题讨论】:

  • 欢迎来到 SO!请尝试分享您的代码或您正在研究的想法。它将帮助人们更好地理解问题! :)
  • 嗨!,是的,我会这样做的。

标签: json node.js


【解决方案1】:

直接使用 require 调用“notes.json”,而不是将其作为文件读取。

var noteString = require('Notes.json');

如果你的 json 格式正确,你可以直接使用它。如果您坚持通过 readFileSync 调用文件,请使用 'utf-8' 作为附加参数。

var noteString = fs.readFileSync('Notes.json','utf-8');

希望这会有所帮助!

【讨论】:

  • 不推荐requireJSON文件。
  • 问题在于将大文本数据写入文件而不是读取文件。我可以毫无问题地阅读它。当我传递大文本时,我的 mac 终端会启动节点终端 (>)。
  • 正如@vibhor1997a 指出的那样,要求JSON 缓存加载的模块。因此,如果您期望 JSON 文件随时间发生变化,那么需要 JSON 文件可能会变得很痛苦。参考 - goenning.net/2016/04/14/stop-reading-json-files-with-require
【解决方案2】:

基本问题在于第二个参数发送的数据。

如果你查看数据,它有一个单词industry's,其中涉及single quote

这导致第二个参数被截断。

如果您将第二个参数放在双引号中,您的代码应该可以正常工作。

如果可能,您还可以使用转义字符来忽略数据中的单引号。

我希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2021-05-04
    • 2020-02-27
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多