express
不必多说,可能是应用最广泛的nodejs框架了。 这里我们使用express自带的脚手架来初始化项目:
cnpm i -g express-generator
express test
nodemon
- 写代码不用写完
Ctrl + C再↑再enter了,即时修改即时刷新。 - 不用满世界
console.log()了,nodemon会自动打印错误,并指出错误位置。
async/await
回调地狱的终极解决方案。async/await仍然是es7准备支持的特性,如果现在就想用,我们需要使用babel。async/await的编译文件在babel-preset-stage-3中,如果你的node环境在5.0以下,你还需要额外安装babel-preset-es2015(从5.0开始,node已经支持大部分es6语法,但import需要在6.10.3才会支持)。
cnpm i babel-core -S
cnpm i babel-preset-es2015 -S
cnpm i babel-preset-stage-3 -S
cnpm i babel-plugin-transform-runtime -S
最后一句是安装额外的依赖babel-plugin-transform-runtime,可以参考之前的文章:babel-plugin-transform-runtime的安装与使用
需要注意的是babel6.0以后,已经实现了自身全部插件化,使用的时候需要配置下.babelrc文件。在根目录新建.babelrc文件,配置以下内容:
{
"presets": ["stage-3", "es2015"],
"plugins": ["transform-runtime"]
}
使用babel的方法很多,但要结合express和nodemon,推荐使用官方提供的require hook方法。顾名思义就是通过require进来后,接下来的文件进行require的时候都会经过Babel的处理。因为我们知道CommonJs是同步的模块依赖,所以也是可行的方法。我们需要多一个用于启动的js文件,一个真正执行程序的js文件。
我们在根目录新建index.js文件:
require("babel-core/register");
require("./app.js");
至此我们还不能启动项目,因为项目并不是从app.js启动的,express项目启动文件在bin/www下。进入并修改第一行,将入口修改为babel编译之后的文件:
var app = require('../index.js');
再次重试,项目即可启动
nodemon start
接下来我们就可以愉快的使用es6,以及async/await来开发了。