每当我使用sudo
命令运行我的节点应用程序时,它似乎在我的Amazon EC2实例(Ubuntu 16.04)上抛出错误。但是每当我在没有sudo
的EC2实例上运行它时,它就会正常运行。但是我在我的本地机器(Mac Sierra OS)上运行它,应用程序启动并正常运行。
我很好奇是否有人可能知道为什么会抛出SyntaxError,只有当我在远程EC2实例上使用sudo
命令时才会这样做。
我在本地和远程计算机上使用节点v.7.6.0和npm v.4.1.2,使用NVM来管理两者上的版本。由于语法错误与ES2015或2016语法有关,因此我不确定为什么我的本地计算机能够在Amazon EC2实例(Ubuntu 16.04)无法正确解释时。
我收到的错误如下所示:
/var/www/mindmetrics/node_modules/twitter-crawler/lib/twitter-crawler.js:150
api(method, ...params) {
^^^
SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/www/mindmetrics/node_modules/twitter-crawler/index.js:20:18)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/www/mindmetrics/server/router/api.js:9:24)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at module.exports (/var/www/mindmetrics/server/router/index.js:6:20)
答案 0 :(得分:0)
我最好的选择是,在您的系统上,root
拥有自己的node.js可执行文件,其版本不支持扩展运算符。
尝试运行sudo node --version
并检查它是否确实是v.7.6.0。