Node.js版本7以下原生不支持ES6的async/await写法,通过bebel的runtime实时翻译实现async/await写法的支持,在Node.js-v6.11.0的express项目下亲测可用。

ps:koa官网首页“Async Functions with Babel”小节也有介绍

具体步骤如下:

●安装”babel-core”

1
npm install --save babel-core

●安装”babel-preset-env”、”babel-runtime”

1
2
npm install --save babel-preset-env
npm install --save babel-runtime

●项目根目录下创建”.babelrc”文件,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"presets": [
[
"env",
{
"target": {
"node": "current"
}
}
]
],
"plugins": [
[
"transform-runtime",
{
"polyfill": false,
"regenerator": true
}
]
]
}

●项目根目录下创建启动文件”index.js”,内容如下,其中的”app.js”是项目本来的启动文件

1
2
3
4
5
require('babel-core/register');
require('./app.js');
require("babel-core").transform("code", {
plugins: ["transform-runtime"]
});