express和koa是使用最广的两个node.js框架。
我们先从express说起。
express是一个灵活的node.js应用框架,在实际的项目当中,用原生node.js的似乎不多,大多会使用框架。
express是一个非侵入式的框架,所谓非侵入式是指它保留了原生node.js的功能,同时添加了一些方法,所以上手起来并不难。
在这里先分享express的两个新方法。
使用前需要先安装express:
| 1
 | npm install express --save
 | 
1. res.write()
用express创建服务器的步骤和原生node.js一样,只是引用的模块有区别。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | const express = require('express');
 
 
 let server = express();
 
 
 server.get('/', (req, res) => {
 res.send('here comes a GET request');
 res.end();
 });
 
 
 server.listen(8080, () => {
 console.log('server running');
 });
 
 | 

express中的res.send()方法和原生node.js的res.write()方法的区别在于res.write()只能接受字符串或buffer作为参数,无法传递其他类型的数据,而res.send()可以接受任意类型的数据。
2. server的基本路由
原生的node.js中createServer后,依靠req.url属性和req.on方法来分别获取GET和POST数据,express则对get和post分别提供了方法,以及通用方法use
1. get方法
| 12
 3
 4
 
 | <form action="http://localhost:8080" method="get"><input type="text" name="name" />
 <input type="submit" value="提交" />
 </form>
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | const express = require('express');
 let server = express();
 
 server.get('/', (req, res) => {
 res.send('Got a GET request');
 console.log('here comes a GET request');
 res.end();
 });
 
 server.listen(8080, () => {
 console.log('server running');
 });
 
 | 


2. post方法
| 12
 3
 4
 
 | <form action="http://localhost:8080" method="post"><input type="text" name="name" />
 <input type="submit" value="提交" />
 </form>
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | const express = require('express');
 let server = express();
 
 server.post('/', (req, res) => {
 res.send('Got a POST request');
 console.log('here comes a POST request');
 res.end();
 });
 
 server.listen(8080, () => {
 console.log('server running');
 });
 
 | 


3. use方法
此外,express的use方法则可以替代以上的get和post方法,能够收到get和post两种数据。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | const express = require('express');
 let server = express();
 
 server.use('/', (req, res) => {
 res.send('Got a GET request');
 console.log('here comes a GET request');
 res.end();
 });
 
 server.listen(8080, () => {
 console.log('server running');
 });
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | const express = require('express');
 let server = express();
 
 server.use('/', (req, res) => {
 res.send('Got a POST request');
 console.log('here comes a POST request');
 res.end();
 });
 
 server.listen(8080, () => {
 console.log('server running');
 });
 
 | 
