egg.js使用superagent做文件转发

Posted lvyueyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了egg.js使用superagent做文件转发相关的知识,希望对你有一定的参考价值。

'use strict';  
const Controller = require('egg').Controller;  
const request = require('superagent');  

class ApiController extends Controller {  
    async file() {  
        const { ctx, app } = this;  
        // egg内置接口获取上传的文件,参考地址:  
        const stream = await ctx.getFileStream();  
        const url = 'http://demo/api/file';  
        
        // attach 需要传3个参数,官方文档上面说文件名不是必传,但是这里面是必须要传的,不传的话在接收端可能无法识别导致文件上传失败  
        await request  
            .post(url)  
            .set('Content-Type', 'multipart/form-data;')  
            .attach('file', stream.read(), stream.filename)  
            .then(res => {  
                console.log('上传成功', res);  
                ctx.body = res.text;  
            }).catch(e => {  
                console.log('上传失败', e);  
                ctx.body = {  
                    msg: '上传失败'  
                };  
            });  
    }  
}  

地址资源链接
superagent官方文档

http://visionmedia.github.io/superagent/

egg文件上传参考文档

https://eggjs.org/zh-cn/basics/controller.html#%E8%8E%B7%E5%8F%96%E4%B8%8A%E4%BC%A0%E7%9A%84%E6%96%87%E4%BB%B6

以上是关于egg.js使用superagent做文件转发的主要内容,如果未能解决你的问题,请参考以下文章

Egg.js中使用sequelize事务

vue2 + egg.js使用FormData传递表单和文件(上传音频)

Egg.js 介绍以及环境搭建

egg.js 24.18参数验证

egg.js 中使用 egg-mysql 操作 mysql 数据库

Egg.js 项目中怎么使用前端模板