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

猜你喜欢

转载自www.cnblogs.com/lvyueyang/p/9149034.html