一、前言
基于 Node.js 平台,快速、开放、极简的 Web 开发框架 。
1. 框架的作用
框架可以帮助省略掉一些基本的相同底层代码的反复书写,只需调用框架的方法就可以实现你想要的功能。
2. Node 相关的框架
- express
- koa
- egg
- thinkjs
- adonisjs
- nestjs
二、安装
$ npm install express
三、Hello World
const express = require('express');
const app = express();
app.get('/', function(req, res) {
res.send('hello world');
});
app.listen(3000, () => {
console.log('服务启动成功! http://localhost:3000');
});
四、路由
路由是指确定应用程序如何响应客户端(浏览器)对特定端点的请求,该特定端点是URL(或路径)和特定的HTTP请求方式(GET、POST等)。
每个路由可以具有一个或多个处理程序函数,这些函数在路由匹配时执行。
1. 路由的基本语法
app.METHOD(PATH, [...HANDLER])
- app 是 express 的实例。
- METHOD 是小写的 HTTP 请求方式(GET、POST、PUT、PATCH、DELETE等)。
- PATH 是请求路径。(以 / 开头)
- HANDLER 是当路由匹配时执行的函数。
// 1. 处理 GET / 请求时
app.get('/', (req, res) => {
res.send('GET / 响应')
})
// 2. 处理 POST / 请求时
app.post('/', (req, res) => {
res.send('POST / 响应')
})
// 3. 处理 GET /users 请求时
app.get('/users', (req, res) => {
res.send('GET /users 响应')
})
// 4. 处理 DELETE /users 请求时
app.delete('/users', (req, res) => {
res.send('DELETE /users 响应')
})
2. 请求参数的获取
- query 参数(?号传参)
Route Path : /hello
Request URL : http://localhost:3000/hello?name=zhangsan&age=18
req.query : {
name: 'zhangsan', age: '18' }
- body 参数(请求体传参)
注意:req.body 需要设置中间件
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
/**
* 处理 请求体参数的 解析
* Express 4.16.0 之前使用 bodyParser 第三方模块
*/
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true }))
/**
* 处理 请求体参数的 解析。
* Express 4.16.0 起 提供了内置的 express.json() 和 express.urlencoded()
* 当然他们内部还是基于 bodyParser 的
*/
//