Express简结

本文介绍了Express框架的基本使用,包括创建应用实例、配置请求体解析、定义路由及处理方法。同时讲解了不同类型的中间件,如全局、路由和错误处理中间件,以及内置中间件如express.json和express.urlencoded。此外,还提到了404错误处理和静态资源托管。
摘要由CSDN通过智能技术生成

1.express的简单起步

const express = require('express'); // 引入

const app = express(); // 创建实例

//配置解析表单请求体 application/json
app.use(express.json())
// 配置解析表单请求体 application/x-www-form-urlencoded
app.use(express.urlencoded())

// 接口服务的格式
/* 
METHOD 指代get/post/put/delete等请求方法
url 可以是一个路径字符串,可以是字符串模式(包含?+*()等判断符号),也可以是一个正则匹配的url
url中也可以包含路径参数,如/userInfo/:userId,可以在request.params.userId中取到路径参数,其中可以使用()进行正则校验
如
app.get('/user/:userId(\d+)', handle);
*/
app.METHOD(url, (request, response) => {
    // 路由处理逻辑
    response.send(返回数据);
})
// 同样可以使用app.route(rul).METHOD((req, res) => {})去处理同一路由不同的请求方法
app.route('/todos')
.get((req, res) => console.log('get todos'))
.post((req, res) => console.log('post todos'));

//监听端口3000

app.listen(3000, () => {
	console.log('server running at http://localhost:3000')
})

/****************response的响应方法**********************/
response.send() // 返回响应内容
response.download() // 提示要进行下载
response.end() // 结束响应
response.json() // 返回json数据
response.jsonp() // 返回支持jsonp的
response.sendStatus() // 设置状态码
response.redirect() // 重定向
response.render() // 渲染视图
response.sendFile() // 发送文件

2.中间件(应用程序中间件、路由中间件、错误处理中间件、内置中间件、第三方中间件)

中间件是指在不修改原有功能的基础上,添加一些新的功能

// 不限制路由
app.use((req, res, next) => {
    console.log('功能1');
    next();
});

// 特定路由的中间件
app.use(url , (req, res, next) => handle());

// 限定请求方法和路由
app.METHOD(url, handle);

// 多个中间件函数
app.use(url, handle1, handle2);

/***要从路由器中间件堆栈中跳过其余中间件功能,请调用next('route')将控制权传递给下一条路由**/

路由中间件

// router.js文件中
const express = require('express');

const router = express.Router(); // 此时的router相当于一个简易的express实例
// 自定义中间件处理逻辑
router.use((req, res, next) => {})


module.exprots = router; // 导出

// app.js中
// 将router导入后挂载到app上
app.use(router); // 不加限制
app.use(url, router);  // 限定路由前缀

错误处理中间件:接受四个参数(error, requset, response, next)

如果将任何内容传递给该next()函数('route'除外),Express都会将当前请求视为错误,并且将跳过所有剩余的非错误处理路由和中间件函数

404处理方式

app.use((req, res, next) => {
    res.status(404).send('404 not found')
}); // 一般用在最后,表示其他的都没匹配上,就来匹配这个

内置中间件

express.json() //解析Content-Type为application/json格式的请求体
express.urlencoded() //解析Content-Type 为application/x-www-form-urlencoded格式的请求体
express.raw() //解析Content-Type为application/octet-stream格式的请求体
express.text()// 解析Content-Type为text/plain格式的请求体
express.static() //托管静态资源文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘风xs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值