部署到Heroku的NodeJS应用程序不支持异步功能

Pat*_*ors 2 heroku node.js async-await

我正在尝试在NodeJS应用程序中的一个路由中实现异步功能.它在我在localhost上运行时有效但在部署到heroku时,unexpected token (在以下代码的第一行中抛出错误:

router.post('/post', async(req,res) => {
    const data = await getData();
    //do stuff

})
Run Code Online (Sandbox Code Playgroud)

我有点困惑为什么它在一个环境而不是另一个环境中工作.我缺少heroku配置吗?我是否需要在Heroku中明确添加对ES2016/2017的支持?

rob*_*lep 5

如果您没有设置特定版本,Heroku默认为最新的长期支持版本的Node(编写时为v6.11.1).

async/await自v7.6开始在Node中可用,因此您需要至少明确指定您的版本package.json,如下所示:https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node -js版本