node+express实现图片上传接口

该博客介绍了如何使用Node.js中的multer库处理文件上传,并结合mkdirp库创建动态文件夹,以及利用moment库进行日期格式化,以实现按日期存储上传文件的功能。同时,展示了上传接口的实现,返回上传文件的相关信息。

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

需要用到的依赖
1.moment //时间序列化
2.mkdirp //文件夹管理
3.multer 上传

/*
	tools.js
*/


// 先引入需要用到的依赖


const multer = require('multer')
const mkdirp = require('mkdirp')
const moment = require('moment')


// 获取当前的日期
const nowDate = moment().format('YYYY-MM-DD')

// 封装保存上传文件功能
const upload = ()=>{
    const storage  = multer.diskStorage({
        destination:async (req,file,cb)=>{ // 指定上传后保存到哪一个文件夹中
            await mkdirp(`./static/upload/${nowDate}`)  // 创建目录
            cb(null,`static/upload/${nowDate}`) //
        },
        filename:(req,file,cb)=>{ // 给保存的文件命名
            let extname = path.extname(file.originalname); // 获取后缀名
    
            let fileName = path.parse(file.originalname).name // 获取上传的文件名
            cb(null,`${fileName}-${Date.now()}${extname}`)
        }
    })

    return multer( {storage})
}

module.exports ={
    upload
}

上传接口

const exprss = require('express')
const router = exprss.Router()


const tools = require('../../utils/tools')

console.log(tools.upload)


/*
	pic 	为前端调用上传接口的参数名,可以定义其他的,需要和前端约定好

*/

router.post('/upload',tools.upload().single('pic'),(req,res)=>{
    res.send({  // 给前端返回的数据
        body: req.body,
        file: req.file,
        path:`127.0.0.1:5052/upload/${req.file.filename}`
    });
})



module.exports = router
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值