作者:小小贤 | 来源:互联网 | 2023-09-25 16:24
因此,今天,node不要运行我的应用程序,因为它在第219行发现了意外的令牌.
这是完整的错误日志:
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. (/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之类的工具来查找多余的大括号.