【搭建博客服务端部分】第六部分 上传接口

本文介绍了如何使用Node.js和Express框架实现一个用于文件上传的服务端接口,特别针对富文本编辑器WangEditor的需求进行了定制。该接口能够接收前端发送的文件,并将其保存到服务器上指定的位置。

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

【搭建博客服务端部分】第六部分 上传接口



6. 上传接口

const express = require('express')
const { db, genid } = require('../db/dbUtils')
const fs = require('fs')
// 创建路由
const router = express.Router()

// 编写路由
router.post('/filelist', (req, res) => {
    // 这里需要指定格式因为使用的wangeditor,文档中说明 https://www.wangeditor.com/
    // 上传成功的返回格式:
    // {
    //     "errno": 0, // 注意:值是数字,不能是字符串
    //     "data": {
    //         "url": "xxx", // 图片 src ,必须
    //         "alt": "yyy", // 图片描述文字,非必须
    //         "href": "zzz" // 图片的链接,非必须
    //     }
    // }
    // 上传失败的返回格式:

    // {
    //     "errno": 1, // 只要不等于 0 就行
    //     "message": "失败信息"
    // }

    if (!req.files) {
        res.send({
            errno: 1,
            message: '上传失败!'
        })
        return
    }

    let files = req.files
    let list = []
    for (let file of files) {
        // 提取出后缀名
        let file_x = file.originalname.substring(file.originalname.lastIndexOf(".") + 1)

        // 随机文件名
        let file_name = genid.NextId() + '.' + file_x

        // 移动文件并且改名
        // process.cwd() : 当前node.js进程下的工作目录
        // __dirname : 当前模块下的绝对路径
        fs.renameSync(
            process.cwd() + "/public/upload/temp/" + file.filename,
            process.cwd() + "/public/upload/" + file_name,
        )
        // 存放新地址
        list.push("/upload/" + file_name)
    }

    res.send({
        "errno": 0, // 注意:值是数字,不能是字符串
        "data": {
            "url":list[0], // 图片 src ,必须
        }
    })
})

module.exports = router

总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值