节点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有什么区别?