express的req.body为undefined
是因为中间件顺序问题,如果bodyParser放在下边两个之后,那么req.body为undefined
//负责解析请求参数的中间件
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(history());
//将所有静态资源访问导向public文件夹
app.use(express.static(path.join(__dirname, STATIC_PATH)))
上传中间件multer
//多文件上传时
app.post(
'/photos/upload',
upload.array('photos', 12),
function (req, res, next) {
// req.files 是 `photos` 文件数组的信息
// req.body 将具有文本域数据,如果存在的话
})
/*
photos,指的是FormData的域,而不是文件名,所以ajax上传的写法为
*/
let fd= new FormData();
files.forEach((ele) => {
/*- 每个文件都属于photos域 -*/
fd.append('photos', ele);
});
Axios.form({
url: '/uploads',
data: {
photo: fd,
}
})