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一样,只是引用的模块有区别。
1 2 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方法
1 2 3 4
   | <form action="http://localhost:8080" method="get">   <input type="text" name="name" />   <input type="submit" value="提交" /> </form>
   | 
 
1 2 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方法
1 2 3 4
   | <form action="http://localhost:8080" method="post">   <input type="text" name="name" />   <input type="submit" value="提交" /> </form>
   | 
 
1 2 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两种数据。
1 2 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'); });
  | 
 
1 2 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'); });
  | 
 
