首秀 Express 框架

简介: 首秀 Express 框架

文章目录


框架特性

  1. 提供了方便简洁的路由定义方式
  2. 获取HTTP请求参数进行了简化处理
  3. 对模板引擎支持程度高,方便渲染动态HTML
  4. 提供了中间件机制有效控制HTTP请求
  5. 拥有大量第三方中间件对功能进行扩展


express的使用

初始化项目:

npm init -y

下载框架模块:

npm i express

测试代码:

const express = require('express')
const app = express()
app.get('/', (req, res) => {
    // res.send('你好,Express!')//输出文本
    res.send({name:'zss'})//输出json格式对象
})
app.listen(3000, () => {
    console.log('Server is running at http://127.0.0.1:3000')
})

总结以上代码:

  • 引入express框架模块
  • send 方法相较于 nodejs 原生的 end 方法更加强大 不同设置相应有的 content-tye
  • 此方法会自动根据返回的数据设置相应的响应头

请求处理的中间件

  • 中间件就是以对方法,可以接受客户端发来的请求,可以对请求作出响应,
  • 也可以将请求继续交给下一 个中间件继续处理
  • 登录就可以使用中间件进行拦截处理

概念:

  • 中间件主要由两部分组成:中间件方法以及请求处理函数
  • 中间件方法由express提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求
  • 其实路由就是中间件
app.get('/', (req, res) => {
    res.send('<h1>hello,express</h1>') // 输出html文本
     })
    //匹配以get方式请求的/路由

中间件——app.use

这里以 app.use 中间件为例,讲解中间件的用法

  1. app.use 匹配所有请求方式和请求路径,可以直接传入请求处理函数
  2. app.use 第一个参数可以传入请求地址,代表无论什么请求方式,只要请求的是这个地址就接收这 个请求

基本用法:

const express = require('express')
const app = express()
app.use((req, res) => {
    res.send('你不错!')
})
app.get('/', (req, res) => {
    res.send('我是主页')
})
app.get('/new', (req, res) => {
    res.send('我是添加')
})
app.listen(3000, () => {
    console.log('Server is running at http://127.0.0.1:3000')
})
  • app.use会接收所有传递方式中的所有路由 导致后面的路由不会继续匹配

next的用法

默认情况下,如果前面的路由已经匹配上,如果后面还有中间件,则不会执行,需要使用 next ,才会 向后执行

app.use中间件的应用

路由的保护

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

  1. 如果用户未登录

  2. 如果用户已经登录

网站维护公告

在所有路由的最上面定义接收所有请求的中间件,直接为客户端作出响应,网站正 在维护中

自定义404(当用户输入与路由不匹配网址时)

const express = require('express')
const app = express()
app.get('/', (req, res) => {
    res.send('我是主页')
})
app.get('/new', (req, res) => {
    res.send('我是添加')
})
//当用户访问地址与以上路由均不匹配时 进入下面的路由 因为下面会匹配任何路由
app.use((req, res, next) => {
    res.status(404).send('你访问的地址不存在')
})
app.listen(3000, () => {
    console.log('Server is running at http://127.0.0.1:3000')
})

错误处理中间件

程序中有两类错误

  1. 代码错误,这个在开发调试阶段就可以解决掉
  2. 运行时错误:程序运行时才可能出现的错误,如读取的文件不存在,连接数据库时数据库服务没有 启动,这类错误的发生与我们的代码没有关系

同步错误处理

同步错误发生后,错误处理能够自动捕捉

下面手动的制造一个错误并抛出,错误处理能够获取错误信息

总结上面代码:

不仅仅局限于手动抛出的错误 错误中间件才能够捕获 还包括同步中的调用未定义的方法 含有语法错误的对象 解析json字符串的错误

异步错误

异步错误发生后,错误处理中间件无法自动捕捉:使用next执行错误处理

例如:读取不存在的文件错误

在回调函数中使用next

写在最后

原 创 不 易 , 还 希 望 各 位 大 佬 支 持 一 下 \textcolor{blue}{原创不易,还希望各位大佬支持一下}


👍 点 赞 , 你 的 认 可 是 我 创 作 的 动 力 ! \textcolor{green}{点赞,你的认可是我创作的动力!}


⭐️ 收 藏 , 你 的 青 睐 是 我 努 力 的 方 向 ! \textcolor{green}{收藏,你的青睐是我努力的方向!}


✏️ 评 论 , 你 的 意 见 是 我 进 步 的 财 富 ! \textcolor{green}{评论,你的意见是我进步的财富!}



相关文章
|
1月前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它采用中间件系统增强功能,如日志和错误处理,集成多种模板引擎(EJS、Jade、Pug)用于HTML渲染,并提供安全中间件提升应用安全性。其可扩展性允许选用合适插件扩展功能,加速开发进程。
|
3月前
|
人工智能 JavaScript 前端开发
【利用AI让知识体系化】入门Express框架(三)
【利用AI让知识体系化】入门Express框架
|
3月前
|
XML 人工智能 JavaScript
【利用AI让知识体系化】入门Express框架(二)
【利用AI让知识体系化】入门Express框架
|
3月前
|
存储 JavaScript 数据库
nodejs中express框架实现增删改查接口
nodejs中express框架实现增删改查接口
|
4月前
|
开发框架 JSON JavaScript
Node.js教程-express框架
Node.js教程-express框架
39 1
|
4月前
|
缓存 前端开发 JavaScript
Express 框架的基本操作
Express 框架的基本操作
|
7月前
|
JSON JavaScript 中间件
node.js中Express框架路由,中间件
node.js中Express框架路由,中间件
|
7月前
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
451 0
|
14天前
|
开发框架 JavaScript 前端开发
【Node系列】Express 框架
Express.js 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,提供一系列强大的特性来帮助你创建各种 web 和移动设备应用。
33 2
|
2月前
|
开发框架 JavaScript 前端开发
比较两个突出的node.js框架:koa和express
接上文讲述了 koa框架,这边文章比较一下这两个突出的node.js框架:koa和express