VUE3-博客全栈 02-服务端

本文档详细介绍了使用Node.js和Express构建文件上传、博客分类及文章增删查改接口的实现过程,包括Multer模块的使用、数据库操作以及Token校验的封装。每个接口的代码逻辑清晰,涉及文件重命名、数据库查询与更新、路由中间件的导入和使用等关键步骤。同时,文中提出了在app.js中全局校验接口中带_token路径的Token有效性,以简化重复的权限验证代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节:1.文件上传的路由中间件,2.博客分类的增删查改,3.博客文章的增删查改接口,

4.进行一个token的封装,token的一个标识符,这样就不用每一个接口都写一堆一样的token校验了,只需要在路径上加上一个标识符就可以了。

一、写一个文件上传的路由中间件。接口可以上传文件。

1.在app.js入口文件要先: (1)npm install multer 安装multer模块(2)引入multer模块 

(3)使用路由中间件 (4)定义上传的文件存放路径 (5)允许所有上传

 (6)指定静态资源路径

2、上传用的路由中间件,里面写了接口

 文件上传接口的全部代码:

const express = require('express') //1.引入express
const router = express.Router() //2.引入路由
const fs = require('fs')
const { db, genid } = require('../db/DbUtils') //引入雪花id和数据库
router.post('/rich_upload', async (req, res) => {
  if (!req.files) {
    //判断如果文件为空
    res.send({
      errno: 1, // 只要不等于 0 就行
      message: '失败信息',
    })
    return //文件不存在就直接返回
  }

  let files = req.files //前端发送的请求文件
  let ret_files = []
  for (let i of files) {
    // files.originalname文件原始的名字,字符串名.substring(从第几位开始提取)
    // lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,
    // 等于0的时候,获取的整个文件名的全部,因为就是从0开始提取就是提取全部,()里面写从第几位开始提取
    let file_ext = i.originalname.substring(i.originalname.lastIndexOf('.') + 1)
    let file_name = genid.NextId() + '.' + file_ext // 随机文件名字

    // 修改名字 fs.renameSync( oldPath, newPath ),修改文件名字加移动文件
    fs.renameSync(
      process.cwd() + '/public/upload/temp/' + i.filename,
      process.cwd() + '/public/upload/' + file_name // process.cwd()返回运行当前脚本的工作目录的路径
    )
    ret_files.push('/upload ' + file_name)
  }
  res.send({
    errno: 0, // 注意:值是数字,不能是字符串
    data: {
      ' url': ret_files[0], // 图片 src ,必须
    },
  })
})
module.exports = router //3.导出路由

3.app.js文件,引入这个路由中间件才可以调用接口。

app.use('/upload', require('./routers/UploadRouter'))
//app.use(定义的接口名字,require(中间件文件路径))

二、博客分类的增删查改,接口。也是路由中间件的形式写的。

路由中间件 编写流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值