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

导读:本篇文章讲解 【搭建博客服务端部分】第六部分 上传接口,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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



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

总结

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/82839.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!