如何在数字海洋上部署Express Server API

时间:2019-04-26 19:08:01

标签: node.js express ubuntu-16.04 digital-ocean

我在数字海洋上有一个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

任何帮助或建议将不胜感激

1 个答案:

答案 0 :(得分:1)

您在同一行上有关键字asyncfunction,并且解释器抱怨意外的单词function,这意味着它可以正确处理单词async,但不会不能一起识别async function。我保证您的本地节点版本为8+,而远程服务器上的版本低于8。此类版本的Node.js没有关键字async(因为它本身不支持异步/等待),因此将其视为global对象的变量或属性。当然无法弄清楚,为什么之后要使用关键字function并退出:)

P.S。请记住,Node 8 LTS即将结束。