需要用到的依赖
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