koa-body 怎么获取到前端页面文件上传的信息?
先简单描述一下项目吧
- view层 angualr.js 6.x版本的spa应用
- angular会直接调用node的api接口,由node去调用服务,进行增删改查的操作
- node版本 8.11.x 主要使用了koa2框架和koa-body(^4.0.4),koa-router(^7.1.1)作为请求解析
需求如下
- 现在有一个文件上传需求,但是node仅仅作为转发,并不实际保存文件,而是调用服务api进行操作
// angular 部分代码
let formData:FormData = new FormData();
formData.append('file',this.fileData); // this.file为从input file 获取到的文件信息
formData.append('name','张三');
this.http.upload('assets/upload/add',formData, (data) => {
console.log(data)
}, (error) => {
});
// node端部分代码
const koaBody = require('koa-body');
app.use(koaBody(
multipart: true,
formidable: {
maxFileSize: 200 * 1024 * 1024 // 设置上传文件大小最大限制,默认2M
}
));
router.post('/upload/add', async (ctx, next) => {
console.log(ctx.request.files); // undefined
console.log(ctx.request.body); // {}
ctx.body = JSON.stringify(ctx.request.files); // 空
});
前台页面设置请求头 'Content-Type': 'multipart/form-data;' 正常发送数据,一切正常。
我现在想在node端不存储任何文件的话,通过调用服务端api将文件上传到服务器,但是ctx.request.files并没有任何的数据。 要是由其他的办法也可以分享一下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果是koabody的4的版本
const file = ctx.request.files.file; // 获取上传文件
如果是koabody的3的版本
const file = ctx.request.file; // 获取上传文件