Express
是node.js
的web
开发框架,它有如下特点:
unopinionated
:框架本身只提供最小web
应用开发API
;- 不限制应用设计模式(
MVC,MVP
); - 不限制代码规范;
- 不限制功能的选择,例如是否有视图层生成
HTML
页面
Express
实现简单的后端API
开发
项目初始化
-
初始化项目
npm init -y # 初始化 npm add express # 添加express依赖
-
在根目录新建
app.js
const express = require('express'); // 引入express库 const app = express(); // 创建express实例代表服务器 const port = 3000; // 设置端口号 // app.listen来启动server,并监听指定端口 app.listen(port, () => { console.log(`Express server listening at http://localhost:${ port}`); });
-
命令
node app.js
启动服务:node app.js # Express server listening at http://localhost:3000
此时打开http://localhost:3000
,只能看到Cannot GET/
字样,这是因为还没有处理url
路由和http
请求.
处理常见的几种请求
-
使用
app.get()
简单处理get
请求:(记得重启服务)// '/' 处理根路径的请求 // req 请求,res 响应 app.get('/', (req, res) => { res.send('Hello World'); });
-
简单处理
post
请求:post
一般用来创建新的资源,一般会带有json
格式的请求体.为了让
express
能解析json
格式的请求体,需要添加express.json
中间件到app
中:app.use(express.json());
中间件是自定义的,用来扩展
express
功能,它可以在处理请求前或发送响应前做一些特定的操作.使用
app.post()
创建post
服务:app.post('/', (req, res) => { console.log('收到请求体:', req.body); // 打印请求体 res.status(201).send(); // 使用res.status设置响应状态码,201代表资源创建成功,再调用send发送响应 });
在
postman
软件,模拟post
请求http://localhost:3000
,发送JSON
数据,命令行打印日志:收到请求体: { name: 'lujiafeng' }
客户端得到
201
响应状态码. -
简单处理
put
请求:put
一般用来更新服务器上的资源,一般需要知道已存在资源的唯一标识(一般是数据库中的id
字段)客户端发送请求时,在
url
中提供标识参数,express
解析标识参数,根据标识更新服务器上的资源.使用
app.put()
创建put
服务:// :id表示该url后的值会作为请求的参数,并赋给id变量 app.put('/:id', (req, res) => { consol