欢迎光临
我们一直在努力

Node-express框架、创建服务器步骤、托管静态资源、路由、中间件

Express 框架

官方给出的概念:Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。

通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似,是专门用来创建 Web 服务器的。

Express 的本质:就是一个 npm 上的第三方包,提供了快速创建 Web 服务器的便捷方法。

Express 的中文官网: Express – 基于 Node.js 平台的 web 应用开发框架 – Express 中文文档 | Express 中文网

创建服务器步骤

安装

创建基本的 Web 服务器

// 1.导入第三方包express const express = require('express') // 2. 创建应用 const app = express() // 3. 监听request请求 // 4.启动并设置端口 app.listen(8001, () => { console.log('app is runing at http://127.0.0.1'); })

监听请求

// 3. 监听request请求 app.get('/', (req, res) => { }) app.post('/', (req, res) => { }) 

把内容响应给客户端

// 3. 监听request请求 app.get('/', (req, res) => { res.send('get 请求 返回') }) app.post('/', (req, res) => { res.send('post 请求 返回') }) 

托管静态资源

静态资源说明:

web开发中所有的代码都是放在服务器端的,客户端在 请求 – 响应 的过程中,代码不会动态的发生变化的文件,我们可以称之为静态资源;html css js 图片 字体等… 都可以称之为静态资源文件。

express.static()

express 提供了一个非常好用的函数,叫做 express.static(),通过它,我们可以非常方便地创建一个静态资源服务器。

const express = require('express') const app = express() // 托管静态资源 app.use(express.static('xtx-pc-client')) app.listen(80, () => { console.log('app is running') })

如上,xtx-pc-client文件夹的静态资源可以对外开放访问了。

挂载路径前缀

在托管的静态资源访问路径之前,挂载路径前缀

// 设置静态资源的前缀 位置在第三步 app.use('/study', express.static('xtx-pc-client')) 

路由

Express 中的路由

在 Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。

Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数,格式如下:

客户的请求方式+请求地址与后端的处理函数是映射关系。

语法:

app.use(地址,处理函数)

app.post('/', (req, res) => { })

用法:

app.post('/', (req, res) => { res.send('return post result') })

模块化路由

为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app 上,而是推荐将路由抽离为单独的模块。

将路由抽离为单独模块的步骤如下:

1.创建路由模块对应的 .js 文件;

2.调用 express.Router() 函数创建路由对象;

3.向路由对象上挂载具体的路由;

4.使用 module.exports 向外共享路由对象;

5.使用 app.use() 函数注册路由模块。

// 1. 导入express模块 const express = require('express') // 2. 创建应用 const app = express() // 3.挂载路由 const router = require('./router.js') app.use(router) // 4. 开启服务器并设置端口 app.listen(80, () => { console.log('app is running') })

中间件

局部中间件

// 3.挂载路由 // 3.1 添加get中间件 app.get('/', (req, res, next) => { console.log('get ok1') res.a = 100 res.b = 200 next() // 只有调用next才会进行下一步 }) app.get('/', (req, res) => { console.log(res.a) // 100 console.log(res.b) // 200 res.send('get ok') })

全局中间件

// 3.挂载路由 // 3.1 添加一个中间件 const mw1 = (req, res, next) => { console.log('ok1') next() } // 注册中间件 app.use(mw1) app.get('/', mw1, (req, res) => { res.send('get ok') }) app.post('/', mw1, (req, res) => { res.send('post ok') }) 

使用注意事项:

1.一定要在路由之前注册中间件;

2.客户端发送过来的请求,可以连续调用多个中间件进行处理;

3.执行完中间件的业务代码之后,不要忘记调用 next() 函数;

4.为了防止代码逻辑混乱,调用 next() 函数后不要再写额外的代码;

5.连续调用多个中间件时,多个中间件之间,共享 req 和 res 对象。

6.下一个中间件可以获取到上一个中间件绑定的数据。

中间件的分类

Express 官方把常见的中间件,分成了 5 大类,分别是:

1.应用级别的中间件;

2.路由级别的中间件;

3.错误级别的中间件;

4.Express 内置的中间件;

5.第三方的中间件。

应用级别的中间件

通过 app.use()函数,绑定到 app 实例上的中间件,叫做应用级别的中间件:

路由级别的中间件

绑定到 express.Router() 实例上的中间件,叫做路由级别的中间件。它的用法和应用级别中间件没有任何区别。只不过,应用级别中间件是绑定到 app 实例上,路由级别中间件绑定到 router 实例上。

错误级别的中间件

错误级别的中间件 function 处理函数,必须有 4 个形参,形参顺序从前到后,分别是 (err, req, res, next)。

// 设置错误级别中间件,其放在所有路由的后面 app.use((err, req, res, next) => { console.log(err.message) res.send('Error!' + err.message, '请稍后重试') })

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:Node-express框架、创建服务器步骤、托管静态资源、路由、中间件
文章链接:https://www.jmwz.net/1432.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)