node前后端交互(Express)

本文详细介绍了Node.js的Express框架,包括Express的基本概念、中间件的工作原理及用法,如app.use,以及如何处理错误。还讨论了Express的请求处理,如构建模块化路由、获取GET和POST参数,以及静态资源的处理。此外,文章还讲解了express-art-template模板引擎的使用和app.locals对象。
摘要由CSDN通过智能技术生成

1. Express框架是什么

1.1 Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用。我们可以使用 npm install express 命令进行下载。

1.2 Express初体验

// 引入express框架
const express = require('express');
// 创建网站服务器
const app = express();
app.get('/' , (req, res) => {
   
	// send()
	// 1. send方法内部会检测响应内容的类型
	// 2. send方法会自动设置http状态码
	// 3. send方法会帮我们自动设置响应的内容类型及编码
	res.send('Hello. Express');
})
app.get('/list', (req, res) => {
   
	res.send({
   name: '张三', age: 20})
})

// 监听端口
app.listen(3000);
console.log('网站服务器启动成功');

2. 中间件

2.1 什么是中间件

  1. 中间件就是express框架提供的一堆方法,可以接收客户端发来的请求、可以对请求做出响应,也可以将请求继续交给下一个中间件继续处理,即接受请求,处理请求。
  2. 中间件主要由两部分构成,中间件方法以及请求处理函数
  3. 中间件方法由Express提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求。
 //中间件示例
app.get('请求路径', '处理函数') // 接收并处理get请求
app.post('请求路径', '处理函数') // 接收并处理post请求

  1. 可以针对同一个请求设置多个中间件,对同一个请求进行多次处理。
  2. 默认情况下,请求从上到下依次匹配中间件,一旦匹配成功,终止匹配。
  3. 可以调用next方法将请求的控制权交给下一个中间件,直到遇到结束请求的中间件。
//02.中间件.js
//引入express框架
const express = require("express");
//创建网站服务器
const app = express();
//当客户端以get方式访问/request路由时
//第一个中间件
app.get('/request', (req, res, next) => {
   
  req.name = "张三";
  next();
});
//下一个中间件
app.get('/request', (req, res) => {
   
  res.send(req.name);
});
//监听端口
app.listen(3000);

2.2 app.use中间件用法

app.use 匹配所有的请求方式,可以直接传入请求处理函数,代表接收所有的请求。

 app.use((req, res, next) => {
   
     console.log(req.url);
     next();
 });

app.use 第一个参数也可以传入请求地址,代表不论什么请求方式,只要是这个请求地址就接收这个请求。

 app.use('/request', (req, res, next) => {
   
     console.log(req.url);
     next();
 });

  1. 输入http://localhost:3000,控制台打印 请求走了app.use中间件
  2. 输入http://localhost:3000/request,控制台打印 请求走了app.use中间件、请求走了app.use /request中间件
//03.app.use.js
const express = require("express");
const app = express();
//接受所有请求的中间件
app.use((req, res, next) => {
   
  console.log('请求走了app.use中间件');
  next()
})
//当客户端访问/request请求时走当前中间件
app.use('/request', (req, res, next) => {
   
  console.log('请求走了app.use /request中间件');
  next();
});
app.get('/list', (req, res) => {
   
  res.send('/list');
});
//监听端口
app.listen(3000);

2.3 中间件应用

1.网站维护公告 ,写在最前面,直接为客户端做出响应,网站正在维护中。

// 引入express框架
const express = require('express');
// 创建网站服务器
const app = express();
 app.use((req, res, next) => {
   
	res.send('当前网站正在维护...')
 })

2.路由保护,客户端在访问需要登录的页面时,可以先使用中间件判断用户登录状态,用户如果未登录,则拦截请求,直接响应,禁止用户进入需要登录的页面。

app.use('/admin', (req
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值