如何运行在Heroku上启用ES2017功能的Node.js应用程序?

我是Node的新手并创建了一个应用程序,其中包含一些async / await语法,如下所示:

const express = require('express');
const app = express();

const someLibrary = require('someLibrary');

function asyncWrap(fn) {
  return (req,res,next) => {
    fn(req,next).catch(next);
  };
};

app.post('/getBlock',asyncWrap(async (req,next) => {
  let block = await someLibrary.getBlock(req.body.id);
  [some more code]
}));

app.listen(process.env.PORT || 8000);

它在我的机器上工作正常,但是当我部署到Heroku时,我收到错误,因为语法不受支持

2017-03-23T10:11:13.953797+00:00 app[web.1]: app.post('/getBlock',next) => {
2017-03-23T10:11:13.953799+00:00 app[web.1]: SyntaxError: Unexpected token (

让Heroku支持这种语法的最简单方法是什么?

解决方法

指定要在package.json中使用的节点版本: https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

因此,对于async / await支持,您需要指定> = 7.6.0

{
  "engines": {
    "node": ">= 7.6.0"
  }
}

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...