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

时间:2017-07-27 15:53:27

标签: node.js heroku async-await

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

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

})

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

2 个答案:

答案 0 :(得分:5)

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

自v7.6起,

async/await已在Node中提供,因此您需要在package.json中至少明确指定该版本,如下所示:https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

答案 1 :(得分:0)

您可以参考此链接

Es6_hrku

您需要将ES6转换为ES5才能在Heroku上实现。 package.json中需要进行更改。