Express框架(2)

中间件的捕获错误

在node.js中,异步API的错误信息都是通过回调函数获取的,支持Promise对象的异步API发生错误可以通过catch方法捕获。
try catch可以捕获异步函数以及其他同步代码在执行过程中发生的错误,但是不能捕获其他类型的API发生的错误。
在这里插入图片描述
try处理代码,如果失败跳转到catch中,next开始中间件,可以捕获同步代码和异步函数的错误,不能捕获回调函数的错误,promise对象的错误等等。

try {
			await readFile('./aaa.js');
		} catch (ex) {
			next(ex)
		}

程序不会因为找不到一个文件就终止运行,这增加代码的健壮性。

构建模块化路由

在这里插入图片描述

const express = require('express');
//创建网站服务器
const app = express();
//创建路由对象
const home = express.Router();
//为路由对象匹配请求路径
app.use('/home', home);
//创建二级路由 来响应内容
home.get('/index', (req, res) => {
	res.send('欢迎来到页面');
})

//端口监听
app.listen(3000);

构建模块化路由

在这里插入图片描述

GET参数的获取

Express框架中使用req.query即可获取GET参数,框架内部会将GET参数转换为对象并返回。
在这里插入图片描述

const express = require('express');
//创建网站服务器
const app = express();

app.get('/index', (req, res) => {
	//获取get请求参数
	res.send(req.query)
})

//端口监听
app.listen(3000);

POST参数的获取

Express中接收post请求参数需要借助第三方包 body-parser。
在这里插入图片描述
下载第三方模块
在这里插入图片描述

const express = require('express');
const bodyParser = require('body-parser');
//创建网站服务器
const app = express();
//拦截所有请求
//extended: false 方法内部使用queryString模块处理请求参数格式
//extended: true 方法内部使用第三方模块qs处理请求参数的格式
app.use(bodyParser.urlencoded({extended: false}))
//req.body的值就是post请求参数,是bodyParser添加的
app.post('/add', (req, res) => {
	res.send(req.body)
})

//端口监听
app.listen(3000);
	<form action="http://localhost:3000/add" method="post">
		<input type="text" name="username">
		<input type="password" name="password">
		<input type="submit">
	</form>

在这里插入图片描述

Express路由参数(传递和接收GET请求参数的另外一种方式)

在这里插入图片描述

const express = require('express');
const bodyParser = require('body-parser');
//创建网站服务器
const app = express();

//req.body的值就是post请求参数,是bodyParser添加的
app.get('/index/:id/:name/:age', (req, res) => {
	res.send(req.params)
})

//端口监听
app.listen(3000);

在这里插入图片描述

静态资源的处理

通过Express内置的express.static可以方便地托管静态文件,例如img、CSS、JavaScript文件等。
在这里插入图片描述

//实现静态资源访问功能
app.use(express.static(path.join(__dirname, 'route')));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值