老树新芽,在ES6下使用Express
来源:互联网 发布:长沙软件行业 编辑:程序博客网 时间:2024/06/10 13:30
要让Express在ES6下跑起来就不得不用转码器Babel了。首先新建一个在某目录下新建一个项目。然后跳转到这个目录下开始下面的操作。
简单走起
安装babel-cli
$ npm install --save-dev babel-cli
然后,可以安装一些presets
$ npm install --save-dev babel-preset-es2015 babel-preset-stage-2
现在就应该安装express
了
$ npm install --save express
再创建一个我们要运行的index.js
$ touch index.js
添加如下代码
import Express from 'express';let app = Express();app.get('/', (req, res) => { res.send(`hello world!`);});app.listen(4321, () => { console.log('server running http://localhost:4321');});
在package.json
里添加运行的脚本
"scripts": {+ "start": "babel-node index.js --presets es2015,stage-2"}
现在开始运行我们的server。
$ npm start
你现在就可以在http://127.0.0.1:4321
下看到hello world
了。
使用nodemon
监视文件修改
我们可以修改npm start
,添加对nodemon
的引用。
$ npm install --save-dev nodemon
修改脚本。
"scripts": {- "start": "babel-node index.js"+ "start": "nodemon index.js --exec babel-node --presets es2015,stage-2" }
运行server
$ npm start
你现在就可以修改index.js
,而且因为有了nodemon
我们的server会在修改发生后自动重启。
在server还在运行的时候,修改index.js
,把hello world
改成YO YO YO!
。然后刷新页面,你就会看到页面内容已经是YO YO YO!
了。
准备生产环境
使用babel-node
只是可以让server运行起来,但是还不能上产品环境。
我们需要预编译我们的代码,那么现在就来开始准备上生产。
首先把index.js
文件移到lib/index.js
。
$ mv index.js lib/index.js
接下来修改npm start
脚本。
"scripts": {- "start": "nodemon index.js --exec babel-node --presets es2015,stage-2"+ "start": "nodemon lib/index.js --exec babel-node --presets es2015,stage-2"}
这还不够,还需要添加两个task npm run build
和npm run server
。
"scripts": { "start": "nodemon lib/index.js --exec babel-node --presets es2015,stage-2",+ "build": "babel lib -d dist --presets es2015,stage-2",+ "serve": "node dist/index.js"}
现在就可以使用npm run build
累预编译了。npm run server
可以在产品环境启动server。
$ npm run build$ npm run server
这样我们就可以很快的重启server而不需要等着babel
预编译文件。
刚刚新添加了dist
目录,这个目录需要排除在git之外。所以给.gitignore
文件添加dist
。
$ touch .gitignore
dist
这样就确保不会一不小心把gist的文件上传了。
把Babel选项保存到.Babelrc中
$ touch .babelrc
添加如下的配置。
{ "presets": ["es2015", "stage-2"], "plugins": []}
现在就可以在npm脚本里去掉那些多余的选项了。
"scripts": {+ "start": "nodemon lib/index.js --exec babel-node",+ "build": "babel lib -d dist", "serve": "node dist/index.js" }
测试server
最后我们需要 保证server经过了严格的测试。
安装mocha
。
$ npm install --save-dev mocha
在test/index.js
里创建测试代码。
$ mkdir test$ touch test/index.js
import http from 'http';import assert from 'mocha';import '../lib/index.js';describe('Example Node Server', () => { it('should retur 200', done => { http.get('http://127.0.0.1:4321', res => { assert.equal(200, res.statusCode); done(); }); });});
接下来安装babel-register
。
$ npm install --save-dev babel-register
然后添加npm test
脚本。
"scripts": { "start": "nodemon es6_express_app.js --exec babel-node", "build": "babel lib -d dist", "server": "node dist/index.js", + "test": "mocha --compilers js:babel-register" }
现在来运行测试。
$ npm test
你会看到下面的内容。
server running http://localhost:4321 Example Node Server ✓ should return 200 (61ms) 1 passing (85ms)
OK,全文完!
参考:example-node-server更多的资源也在这个repo下。
- 老树新芽,在ES6下使用Express
- 老树新芽 体验Visual Basic 9.0新功能
- 老树发新芽,不如重新洒下种子
- Spring源代码分析(11)---JDBC Dao(老树发新芽)
- 罗宾逊:这家百年物流公司,如何老树发新芽
- Linux for h4100 - installing Linux to the ipaq h4150 (老树出新芽)
- 老树
- 在Node.js环境下使用Express创建Web项目
- 在node中使用 ES6
- windows下离线使用express
- 在express中使用websocket
- es6在window环境下的应用以及在sublime Text3里的使用。
- 微信小程序 --- 在ES6语法箭头函数下使用this.setData报错
- (转载)老树下的守候--山门听雨
- 在WINDOWS环境下使用node安装express,mongoose,jade,bower,bootstrap
- 在FedaroCore4下安装DB2 Express-C
- 在windown下安装DB2-Express-C
- 使用handlebars 代替Jade 在使用Express
- 队列组
- ajax异步模式下实现等待loading(jQuery同步Ajax带来的UI线程阻塞问题及解决办法)
- 加载properties文件工具类
- Android中Java和JavaScript交互代码示例3以及常见问题
- Unity3d中物体的的碰撞检测
- 老树新芽,在ES6下使用Express
- 微信公众号支付出错: 当前页面的URL未注册: get_brand_wcpay_request:fail
- 什么是好的算法?
- ViewGroup中添加view
- 常见字符串类型题
- 自定义控件--快速检索
- 记一次存储过程学习及存其常用函数
- Permutations
- C#获取网页内容的三种方式