我在数字海洋上有一个Ubuntu发行版,我打算部署nodejs/express
API。我使用this tutorial制作了api,它在我的本地计算机(MacOS)上运行良好。但是,当我尝试在我的Droplet上启动服务器时,出现此错误:
> node-mongo-registration-login-api@1.0.0 start /opt/loginAPI
> node ./server.js
/opt/loginAPI/_helpers/jwt.js:18
async function isRevoked(req, payload, done) {
^^^^^^^^
SyntaxError: Unexpected token function
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/opt/loginAPI/server.js:6:13)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-mongo-registration-login-api@1.0.0 start: `node ./server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-mongo-registration-login-api@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/treetop/.npm/_logs/2019-04-26T18_59_02_737Z-debug.log
任何帮助或建议将不胜感激
答案 0 :(得分:1)
您在同一行上有关键字async
和function
,并且解释器抱怨意外的单词function
,这意味着它可以正确处理单词async
,但不会不能一起识别async function
。我保证您的本地节点版本为8+,而远程服务器上的版本低于8。此类版本的Node.js没有关键字async
(因为它本身不支持异步/等待),因此将其视为global
对象的变量或属性。当然无法弄清楚,为什么之后要使用关键字function
并退出:)
P.S。请记住,Node 8 LTS即将结束。