节点js语法错误意外的令牌?

我的代码和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中是非法的。 或者,您可能使用的是除UTF-8,UTF-16BE,UTF-16LE,UTF-32BE或UTF-32LE之外的唯一JSON合法编码之一以外的字符编码。

有关为什么BOM在JSON中非法的详细信息,请参阅以下答案:

  • JSON BOM /字符集编码的规范和用法
  • 没有BOM的UTF-8和UTF-8有什么区别?