所以今天, Node 不运行我的应用程序,因为它在第 219 行发现了意外的 token 。 这是完整的错误日志:
syberic@syberic:~/Web/lotalot$ node app.js
/home/syberic/Web/lotalot/config/passport.js:219
});
^
SyntaxError: Unexpected token )
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/home/syberic/Web/lotalot/app.js:22:1)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:141:18)
at node.js:933:3
但问题是,文件passport.js
有217 行!
这是该文件末尾在 VIM 中的截图:
我用其他一些文本编辑器、鼠标垫、gedit 等检查了该文件。但该文件始终有 217 行。当我在文件末尾添加一些空行时,意外标记分别向下移动。这是什么魔法?这怎么会发生?我真他妈的沮丧。
最佳答案
我认为这意味着您的程序中有一个额外的左大括号。在内部,Node 将你的程序文本粘贴到一个函数中,所以在你的文件内容之前有一些额外的字符,在它之后有一个额外的行。我可以使用这个只有一个左括号的单行文件轻松重现这一点:
$ cat foo.js
{
$ node foo.js
/Users/dap/foo.js:3
});
^
SyntaxError: Unexpected token )
at Module._compile (module.js:439:25)
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 Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
我建议使用像 javascriptlint 这样的工具来查找额外的左大括号。
关于javascript - Node.js 中不存在的行上的隐形神话意外 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183119/