router.post('/uploadFile', async (ctx, next) => {
const uploadFile = () => {
const form = new formidable.IncomingForm();
form.uploadDir = __dirname + '/../public/documents/'
form.keepExtensions = true;
form.multiples = true;
return new Promise((resolve, reject) => {
form.parse(ctx.req, (err, fields, files) => {
if (err) {
reject({ code: 200, err: err });
return;
}
let time = new Date().getTime();
let fileName = files.file[0].originalFilename;
let newFileName = time + '_' + fileName;
let newPath = form.uploadDir + newFileName;
fs.renameSync(files.file[0].filepath, newPath); //重命名
let res = {};
res.newFileName = newFileName;
res.originalFileName = fileName;
resolve({ code: 200, data: res })
return ;
})
})
}
try {
const result = await uploadFile();
ctx.body = result; //为什么不能将result 赋值为ctx.body
} catch (error) {
ctx.status = 500;
ctx.body = { error: 'Error' };
}
})
ctx.body 返回404 返回ctx.body 失效