formidable
这个中间件也是文件上传 只不过他可以和其他的表单数据同时上传 所以一般时候使用的比较多
下载命令 : npm install formidable
const express = require('express');
let formidable = require('formidable');
const path = require('path');
const fs = require('fs');
let app = express();
// 上传文件
app.post('/index',(request,response)=>{
// 实例化一个上传实例
let form = new formidable.IncomingForm();
// 指定上传的路径
form.uploadDir = path.resolve(__dirname,'./upload/');
// 开始上传 使用form对象中的parse方法进行上传
// 内置两个个参数 第一个参数是请求对象request 第二个参数是回调函数
// 回调内置三个参数 第一个参数是错误 第二个参数是上传的其他字段 第三个参数是上传的文件信息
form.parse(request,(error,fields,files)=>{
if (error){
console.log('爱慕骚瑞');
}else{
// 获取我们上传的对象
let file = files.photo;
// 取出我们上传的对象的临时路径和临时文件名
let oldname = file.path;
// 创建新的文件名 避免命名冲突 使用时间戳命名
let fileName = Date.now() + path.extname(file.name);
// 指定新的上传路径 然后改名
let newName = path.resolve(__dirname,'./upload/',fileName);
// 更名操作
fs.rename(oldname,newName,err=>{
err ? console.log('111') : response.send('上传成功')
})
}
})
});
app.listen(3000,'127.0.0.1',()=>{
console.log('服务器正在运行......');
})