【问题标题】:Error Reading File in Node.js throws weird charactersNode.js 中的错误读取文件会引发奇怪的字符
【发布时间】:2014-07-04 02:03:03
【问题描述】:

下面的代码读取文件。

    var filename = process.cwd() + "\\config\\test1.json";
    var fs = require( 'fs' );
    var contents = fs.readFileSync( filename,"utf8" );
        console.log("contents");
    var rulesObject = JSON.parse( contents );

test1.json 有如下内容

textpad

错误

contents
?textpad

undefined:1
textpad
^
SyntaxError: Unexpected token 
    at Object.parse (native)
    at readAccessRules (D:\s98799\config\resourceaccess.js:30:26)
    at module.exports.accessRules (D:\s98799\config\resourceaccess.js:6:11)
    at D:\s98799\config\resourceaccess.js:19:4
    at Object.<anonymous> (D:\s98799\config\resourceaccess.js:40:7)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

【问题讨论】:

  • 可能是个愚蠢的问题,但 test.json 文件是在 UTF8 模式编辑器中创建并保存的吗?
  • 你在 JSON 解析“textpad”?!?
  • 用 UTF8 尝试了 VS2012 和记事本,没有运气

标签: node.js


【解决方案1】:
  var filename = process.cwd() + "/file.txt";
  var fs = require( 'fs' );
  var contents = fs.readFileSync( filename,"utf8" );
  console.log(contents);

这将读取文件并将其记录下来(将 file.txt 更改为您的文件)

【讨论】:

  • 你从“var rulesObject = JSON.parse(contents);”得到一个错误因为文件的内容是纯文本,不是json。
  • 为了让 JSON.parse(contents) 工作而不是 'textpad' 将其添加到您的 test1.json 中:{"c": "some text"}
猜你喜欢
  • 2013-01-02
  • 2012-05-12
  • 2022-06-13
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 2012-02-14
相关资源
最近更新 更多