Express框架

ppgo8 于 2023-05-18 发布

Express框架

express介绍

express使用

express下载

express本身是一个npm包,使用前需要先使用npm安装

npm init        // 文件初始化为npm包后才可以使用后续的命令
npm i express

express使用步骤

express基本使用步骤是四步:1.引入模块 2.创建应用对象 3.创建路由规则 4.监听端口,启动服务

// 1.引入express模块
const express = require('express')
// 2.创建应用对象
const app = express()
// 3.创建路由规则
app.method(path,fn1(){})
// 4.监听端口,启动服务
app.listen(port,fn2(){})

命令行下执行该脚本,然后就可以使用浏览器访问指定路径的内容。

# 执行脚本
node <文件名>       # 方法1
nodemon <文件名>    # 方法2

express路由

什么是路由

官方定义:路由确定了应用程序如何响应客户端对特定端点的请求

路由的使用

一个路由的组成有:1.请求方法、2.请求文件路径、3.回调函数

express中提供了一系列方法,可以很方便的使用路由,语法如下:

// method请求方法   : get post all
// path请求资源路径  : *表示所有页面  ‘/’首页
// 回调函数
app.<method>(path,callback)

app是由express模块中的方法生成的应用对象。

获得请求报文参数(待补充)

使用express模块中的方法 获得请求报文参数(请求报文传送的数据)

// 原生方法
request.method     // 请求方式
request.url        // 请求资源路径+上传参数  符号/后面的全部内容
request.httpVersion// 请求协议版本
request.headers    // 请求头
request.body       // 获得请求体
// express方法
request.query          // 获得查询字符串
request.get('请求头键') // 获得请求头的任意键对应的值,注意键均需要字母小写

获取路由参数

路由参数:URL请求路径中的参数

app.get('/:id.html', (req, res) => {
	res.send('商品详情, 商品 id 为' + req.params.id);
});

说明:


为什么要有占位符?

express响应设置

响应的方式:

注意响应的操作都是基于response对象的。

1.原生响应方法

// 原生的设置方法
respnse.statusCode = 404           // 响应状态码
respnse.statusMessage = 'love'     // 响应信息描述
respnse.setHeader('pp','love dog') // 响应头
respnse.write('body')              // 响应体

2.express响应方法

// expree方法设置响应
respnse.status(500)                  // 设置响应状态码
respnse.set('xxx','yyy')             // 设置响应头
respnse.send('你好,express!')        // 设置响应体;中文不会乱码
// 还可以链式编程
respnse.status(500).set('xxx','yyy').send('你好,express!')
// 不需要end结尾

3.express的其他响应

// 其他响应
response.redirect(path)     // 重定向
response.download(filename) // 下载响应
response.json()             // 响应json
response.sendFile(__dirname + '/home.html')         // 响应文件内容

express的响应会自动指定响应头的字符集类型,无须设置响应头的字符集类型。

中间件

防盗链

基础知识

代码实现

Router路由模块化

https://www.bilibili.com/video/BV1gM411W7ex?p=113&spm_id_from=pageDriver&vd_source=dde2f4dd432156027fedf9b1734ba705

什么是Router?

模板引擎

什么是模板引擎?

EJS

EJS是一个高效的JavaScript的模板引擎

官网:https://ejs.co/

中文站:https://ejs.bootcss.com/


补充

npm安装包也有向上寻找机制,只要是在初始化的npm包的文件夹里,任何地方安装包都可以,都会安装到初始化时唯一的npm_modules文件夹中,

express-generator

安装方法

npm install -g express-generator