关于 express、以及使用 express 搭建,获取验证码接口完整代码实例

本文介绍了Express.js,一个强大的Node.jsWeb应用开发框架,涵盖其应用场景、核心组成部分(如路由、中间件、请求对象和响应对象等),以及一个基础的获取验证码应用实例。
摘要由CSDN通过智能技术生成

一、express 是什么? 应用场景是什么?

        Express 是一个基于 Node.js 平台的 Web 应用开发框架,它提供了一系列强大的功能和工具,使得开发 Web 应用变得简单、快速和高效。

        Express 提供了丰富的 HTTP 请求和响应的 API,可以轻松处理各种 HTTP 请求和响应,包括路由、中间件、请求参数解析、静态文件服务、错误处理等。Express 扩展性强,可以方便地集成其他 Node.js 模块,也可以通过插件系统扩展自身功能。

        Express 应用场景非常广泛,可以用于开发各种类型的 Web 应用,包括但不限于:

  • RESTful API 服务
  • 单页应用程序
  • 实时应用程序(如聊天室、游戏)
  • 响应式网站
  • 后端管理面板
  • 博客、CMS、电子商务平台等

        总之,无论是什么类型的 Web 应用,使用 Express 都能够快速地进行开发和部署。同时,由于 Express 的灵活性和可扩展性,也可以满足各种定制化需求。

        官网: Express - Node.js web application framework

        个人:用来写后端接口。

二、express的核心组成部分

Express.js 的核心组成部分包括以下几个部分:

  1. 应用程序(Application):Express 应用程序是 Express 的核心对象,它代表一个 Web 应用程序。通过创建 Express 应用程序对象,你可以配置路由、中间件、错误处理程序等。

  2. 路由(Routing):Express 提供了简单而灵活的路由系统,可以根据不同的 URL 请求路径和 HTTP 方法来处理请求。使用路由,你可以将请求分发到不同的处理程序函数,实现对不同请求的逻辑处理。

  3. 中间件(Middleware):中间件是 Express 应用程序的关键概念。中间件函数可以在请求到达路由处理程序之前或之后执行一些逻辑。Express 中间件可以用来处理请求参数解析、身份验证、日志记录、错误处理等任务。

  4. 请求对象(Request):Express 提供了一个 req 对象来表示客户端发起的 HTTP 请求。请求对象包含了请求的各种属性,如请求头、请求参数、请求路径等,并提供了一系列方法来访问和操作这些属性。

  5. 响应对象(Response):Express 提供了一个 res 对象来表示服务器对客户端请求的响应。响应对象包含了设置响应状态码、设置响应头、发送响应数据等方法,使得服务器能够向客户端发送数据和信息。

  6. 模板引擎(Template Engine):Express 可以与各种模板引擎集成,用于动态生成 HTML 页面。通过设置模板引擎,你可以将数据和模板结合起来生成最终的响应内容。

  7. 错误处理(Error Handling):Express 具有灵活的错误处理机制。你可以编写自定义的错误处理中间件来捕获和处理各种类型的错误,以确保应用程序的稳定性。

三、express的应用实例(快速掌握express基本使用)

1、基础实例(获取验证码)

后端代码详细目录(这里演示没有和数据库交互、后续文章实例将演示了与数据库交互流程、登录注册、文件上传等等相对复杂流程)

1、新建back文件夹 基础目录结构如下(这里指较为完整目录结构)

新建app.js文件 没有红色字体文件及文件夹会在下包时自动生成

2、搭建一个基础的web服务器

(1) 下载express

npm i express

(2) 使用express搭建服务器

// app.js
// 导入 express
const express = require('express')

// 创建服务器
const app = express()

// 挂载路由
app.get('/eg', (req, res) => {
  return res.send('这是演示的接口')
})

// 启动服务器 指定端口号为3001
app.listen(3001, () => {
  console.log('App in running http://127.0.0.1:3001')
})

(3) 运行 app.js 文件、并调用接口可以看到如下效果(基础示例)

3、在基础的web服务器基础上构建获取验证接口
(1) 构建路由处理函数
// router_method/auth.js
// 认证中心路由方法

// 导入 svg-captcha
const svgCaptcha = require('svg-captcha')

// 生成 svg 图片验证码的路由方法
exports.createCaptcha = (req, res) => {

  // 生成普通验证码图片
  // const captcha = svgCaptcha.create({
  //   size: 4, // 验证码长度
  //   noise: 3, // 干扰线数量
  //   fontSize: 50, // 字体大小
  //   width: 150, // 图片宽度
  //   height: 50, // 图片高度
  //   color: true, // 随机颜色
  //   background: '#f5f5f5' // 背景颜色
  // });

  // 生成算数表达式图片
  const captcha = svgCaptcha.createMathExpr({
    size: 6, // 验证码长度
    noise: 0, // 干扰线数量
    mathMin: 1, // 算术表达式中允许的最小数字
    mathMax: 9, // 算术表达式中允许的最大数字
    mathOperator: '+-', // 算术表达式中允许的运算符
    fontSize: 50, // 字体大小
    width: 150, // 图片宽度
    height: 50, // 图片高度
    color: true, // 随机颜色
    background: '#f5f5f5' // 背景颜色
  });

  // 将验证码文本存储在会话中,以便稍后进行验证
  req.session.mathExprCaptcha = captcha.text;

  // 返回客户端数据
  return res.send({
    code: 200,
    message: '获取验证码成功!',
    data: {
      captchaImg: captcha.data,
      captchaText: captcha.text
    }
  })
}
(2) 构建路由模块(通过Router挂载路由并导入路由方法)
// router/auth.js
// 认证中心路由模块

// 导入 express
const express = require('express')
// 导入路由方法
const { createCaptcha } = require('../router_method/auth_method.js')

// 创建 Router 路由对象
const Router = express.Router()

// 挂载路由
Router.get('/captcha', createCaptcha)

// 导出路由对象
module.exports = Router
(3) 入口文件挂载路由
// app.js
// 导入 express
const express = require('express')

// 导入路由对象
// 导入认证中心路由方法
const auth = require('./router/auth.js')

// 创建服务器
const app = express()

// 认证中心
app.use('/auth', auth)

// 启动服务器
app.listen(3001, () => {
  console.log('App in running http://127.0.0.1:3001')
})

(4) 运行 app.js 文件、并调用接口可以看到如下效果(基础示例)

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值