Express 简介
express的基本使用
安装express
npm i express@4.17.1
创建基本的 Web 服务器
监听客户端的get和post请求
把内容响应给客户端:res.send()
获取 URL 中携带的查询参数:req.query
获取 URL 中的动态参数:req.params
// 1 导入express
const express = require('express');
// 2 创建web服务器
const app = express();
// 4 监听客户端的get和post请求,并向客户端响应具体的内容
app.get('/user', (req, res) => {
//调用express提供的res.send方法 向客户端响应对象
res.send({
name: 'zs', age: 20, gender: '男' });
});
app.post('/user', (req, res) => {
//调用express提供的res.send方法 响应文本字符串
res.send('请求成功');
});
// 3 启动服务器
app.listen(80, () => {
console.log('express server running at http://127.0.0.1:80');
});
app.get('/', (req, res) => {
//默认情况下,req.query是一个空对象
//通过req.query可以获取客户端发送过来的查询参数
//默认情况下 req.query是一个空对象
console.log(req.query);
res.send(req.query);
});
//:id是一个动态参数 传递的时候不需要写:
app.get('/user/:id/:name', (req, res) => {
//req.params是动态匹配到的URL参数 默认是一个空对象
console.log(req.params);
res.send(req.params);
});
托管静态资源
//对外提供clock文件夹静态资源
const express = require('express');
const app = express();
//调用express.static()快速对外提供clock文件夹静态资源
app.use(express.static('./files'));
app.use(express.static('./clock'));// /clock不会出现在访问路径中 在浏览器中浏览时直接输入127.0.0.1/index.html 127.0.0.1/index.css
app.listen(80, () => {
console.log('express server running at http://127.0.0.1');
});
托管多个静态资源目录
如果要托管多个静态资源目录,多次调用 express.static()
函数: 访问静态资源文件时,express.static()
函数会根据目录的添加顺序查找所需的文件
挂载路径前缀
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5m8k90MB-1682335943638)(F:\VscodeProjects\node.js\img\挂载路径前缀.png)]
nodemon
npm install -g nodemon
Express 路由
路由的概念
在 Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。 Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数
app.method(path,handler)
路由的使用
//在一个空项目的根目录中,初始化package.json
npm init -y
npm i express@4.17.1
nodemon
//简单路由用法
const express = require('express');
const app = express();
//挂载路由
app.get('/', (req, res) => {
res.send('hello ');
});
app.post('/', (req, res) => {
res.send('post request');
});
app.listen(81, () => {
console.log('http://127.0.0.1:81');
});
模块化路由
为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app
上,而是推荐将路由抽离为单独的模块。 将路由抽离为单独模块的步骤如下:
① 创建路由模块对应的 .js
文件
② 调用 express.Router()
函数创建路由对象
③ 向路由对象上挂载具体的路由
④ 使用 module.exports
向外共享路由对象
⑤ 使用 app.use()
函数注册路由模块
//03.router.js
//路由模块
// 1.导入express
const express = require('express');
// 2.创建路由对象
const router = express.Router();
// 3.挂载具体的路由
router.get('/user/list', (req, res) => {
res.send('Get user list');
});
router.post('/user/add', (req, res) => {
res.send('add new user');
});
// 4.向外导出路由对象
module.exports = router;
//02.模块化路由.js
const express = require('express');
const app = express();
// 1.导入路由模块
const router = require('./03.router');
// 2.注册路由模块
//app.use(router);//app.use()的作用,就是注册全局中间件
app.use