express框架基础

本文详细介绍了Express框架的基础知识,包括安装与使用、托管静态资源、路由定义和匹配机制、中间件的调用流程和分类,以及CORS跨域资源共享的设置。还深入探讨了中间件的使用,如自定义解析数据和API接口。此外,文章还涉及了用户身份认证,如session和JWT的实现。最后提到了nodemon工具的使用。
摘要由CSDN通过智能技术生成

安装与使用


// 导入express模块
const express = require('express');
// 注册express模块
const app = express();
//挂载路由
app.get('/',(req,res)=>{
   
    res.send(`<h1>首页</h1>`);
})
app.get('/user',(req,res)=>{
   
    //req请求对象 获取请求参数
    res.send(req.query);
})
app.get('/user/:id',(req,res)=>{
   
    // req请求对象 获取动态参数
    res.send(req.params);
})
// 启动服务器
app.listen(80,()=>{
   
    console.log("server running at http://127.0.0.1");
})

托管静态资源

//托管静态资源
//前面是路径前缀,后面是静态资源
app.use('/public',express.static('./clock'));

路由定义

// Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数,格式如下:
	app.METHOD(PATH,HANDLER)
// METHOD请求的类型
// PATH请求的 URL 地址
// HANDLER处理函数
	app.get('/user/,(req,res)=>{
   
		res.send(`这是路由`);
	});

路由匹配机制

  1. 按照定义的先后顺序进行匹配
  2. 请求类型和请求的URL同时匹配成功,才会调用对应的处理函数

模块化路由

router.js 自定义路由模块文件

// 导入express
const express = require('express');
// 启动路由
const router = express.Router();
// 挂载路由
router.get('/',(req,res)=>{
   
    res.send(`这是首页`);
})
router.get('/user/list',(req,res)=>{
   
    res.send(`get user list`);
})
router.post('/user/add',(req,res)=>{
   
    res.send('post new add');
})
// 向外共享
module.exports = router;

server.js 入口文件

// 1。导入express模块
const express = require('express');
// 2.启动express模块
const app = express();
// 3.导入路由模块
const router = require('./router');
// 4.注册路由
app.use('/api',router);
// 5.启动服务器
app.listen(8080,()=>{
   
    console.log("server running at http://127.0.0.1:8080");
})

中间件

中间件(Middleware ),特指业务流程的中间处理环节
中间件一般要在路由之前注册
错误级别中间件要在路由之后注册

express中间件调用流程

在这里插入图片描述

express中间件格式

Express 的中间件,本质上就是一个 function 处理函数,Express 中间件的格式如下:

app.get('/',(req,res,next)=>{
   
    next();	//next 函数是实现多个中间件连续调用的关键,它表示把流转关系转交给下一个中间件或路由。
})

定义一个中间件函数

const mw = function(req,res,next){
   
	console.log(`这是一个中间件`);
	next();
}

注册全局中间件

// 导入express模块
const express = require('express');
// 实例化express模块
const app = express();
// 第一个中间件
const mw = (req,res,next)=>{
   
    req.a = 'a'
    console
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值