标签:body const log request app ctx koa2 上传 图片
首先必须允许文件上传
const KoaBody = require("koa-body");
// 使用文件上传中间件
app.use(KoaBody({ multipart: true }));
然后是要然外部能访问图片
const serve = require("koa-static");
const path = require("path");
app.use(serve(path.join(__dirname, "/public")));
焯,直接看官方的吧
const Koa = require('koa');
const Router = require('@koa/router');
const multer = require('@koa/multer');
const app = new Koa();
const router = new Router();
const upload = multer(); // note you can pass `multer` options here
// 添加多个文件上传的路由
router.post(
'/upload-multiple-files',
upload.fields([
{
name: 'avatar',
maxCount: 1
},
{
name: 'boop',
maxCount: 2
}
]),
ctx => {
console.log('ctx.request.files', ctx.request.files);
console.log('ctx.files', ctx.files);
console.log('ctx.request.body', ctx.request.body);
ctx.body = 'done';
}
);
// 添加单个文件上传的路由
router.post(
'/upload-single-file',
upload.single('avatar'),
ctx => {
console.log('ctx.request.file', ctx.request.file);
console.log('ctx.file', ctx.file);
console.log('ctx.request.body', ctx.request.body);
ctx.body = 'done';
}
);
// 将路由器添加到我们的应用程序中
app.use(router.routes());
app.use(router.allowedMethods());
// 启动服务器
app.listen(3000);
重要的注意点就是,请求的key值要跟 upload.fields 中的 name 一样,如上我请求的 name 是 avatar 所以我在请求的时候发送请求的 key 也要写成 avatar ,如下
标签:body,const,log,request,app,ctx,koa2,上传,图片 来源: https://blog.csdn.net/qq_57749525/article/details/122748716
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。