node.js - Node js 语法错误意外标记?

标签 node.js log4js-node

我的代码和 log4js 文件中的所有内容似乎都很好并且语法正确。但是,在运行我的应用程序时,我收到以下错误:

undefined:1
?{
^
SyntaxError: Unexpected token ?

当我到达这一行时,就会发生这种情况:

var logFile = 'log4js_' + process.env.NODE_ENV + '.json';
log4js.configure(logFile);

这是我的 log4js 文件

{
    "appenders": [
    {
      "type": "console"
    },
    {
      "type": "file",
      "filename": "logs/main.log",
      "maxLogSize": 1024000,
      "category": "main"
    }
    ]
}

我不知道为什么它会认为有一个“?”字符开头,log4js 文件没有语法错误。

最佳答案

您可能有 BOM 字符或其他一些不可打印的字符,这在 JSON 中是非法的。或者,您可能使用的字符编码不是 JSON 仅有的 5 种合法编码(UTF-8、UTF-16BE、UTF-16LE、UTF-32BE 或 UTF-32LE)之一。

有关为什么 BOM 在 JSON 中非法的更多详细信息,请参阅这些答案:

关于node.js - Node js 语法错误意外标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346687/

相关文章:

javascript - 如何在node.js中使用多语言邮件模板?

node.js - 在winston中记录每个请求的请求信息

node.js - 在 Log4js 中禁用控制台打印

unit-testing - 如何模拟对 logger.warn 的调用?

javascript - 错误: Internal error: unknown identifier

node.js - 如何将 node.js 模块作为 node.js 程序的子进程执行?

javascript - 排除来自身份验证快速站点的路由

javascript - 在node.js中传递字符串

javascript - Node 的 log4js 不输出到文件,只输出到控制台

javascript - Nodejs 有没有办法以 JSON 格式打印 log4js 输出?