在部署到 Heroku 的 NodeJS 应用中不支持异步函数



我正在尝试在 NodeJS 应用程序中的一条路由中实现异步功能。当我在本地主机上运行它时它可以工作,但是当部署到 heroku 时,以下代码的第一行会抛出错误unexpected token (

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

我有点困惑为什么这在一个环境中有效,而在另一个环境中不起作用。我缺少英雄配置吗?我是否需要在 Heroku 中显式添加对 ES2016/2017 的支持?

如果您未设置特定版本,Heroku 默认为 Node 的最新长期支持版本(截至撰写本文时为 v6.11.1(。

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

你可以参考这个链接

Es6_hrku

您需要将ES6转换为ES5才能在heroku上实现。 包.json 中所需的更改。

最新更新