如何将Busboy与路由控制器一起使用?

问题描述

我已经为节点使用了路由控制器库,我需要使用Busboy来获取多部分/表单数据。我有这个Busboy代码,如何用路由控制器实现它?

export const upload = (req: any,res: any) => {
  if (req.method !== 'POST') {
    return res.status(405).end();
  }
  const busboy = new Busboy({
    headers: req.headers,limits: {
      fileSize: 10 * 1024 * 1024,},});

  const tmpdir = os.tmpdir();
  const fields: any = {};
  const uploads: any = {};

  busboy.on('field',(fieldname,val) => {
    console.log(`Processed field ${fieldname}: ${val}.`);
    fields[fieldname] = val;
  });

  const fileWrites: any = [];

  busboy.on('file',file,filename) => {
    console.log(`Processed file ${filename}`);
    const filepath = path.join(tmpdir,filename);
    uploads[fieldname] = filepath;

    const writeStream = fs.createWriteStream(filepath);
    file.pipe(writeStream);

    const promise = new Promise((resolve,reject) => {
      file.on('end',() => {
        writeStream.end();
      });
      writeStream.on('finish',resolve);
      writeStream.on('error',reject);
    });
    fileWrites.push(promise);
  }); continue...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)