为inversify-express-utils控制器提供良好的Node Express多部分文件上传中间件建议

cnjp1d6j  于 2023-01-16  发布在  Node.js
关注(0)|答案(1)|浏览(143)

我正在为工作做一个项目,使用Typescript和ExpressJs,他们使用inversify-express-utils作为所有端点的控制器。我的任务是添加一个文件上传后端端点来摄取文件(csv,pdf,dat),该文件可能是几个字节到100 Mb以上。
我正在寻找与inversify-express-utils一起工作的多部分文件上传结构(和示例)的建议。
Multer仍然是node的一个更好的文件上传中间件吗?如果是的话,有没有关于如何将它折叠成一个inversify-express-utils控制器的例子?在过去的一个小时里,我没有找到任何例子。也许我的Google Foo是缺少的。
对于node/typescript/express/inversify-express-utils,有没有更好的文件上传中间件?如果有,有没有让它工作的代码示例?

s5a0g9ez

s5a0g9ez1#

以下是一个示例端点,其中Multer上载位于“inversify”和“inversify-express-utils”中

import * as express from 'express';
import multer from 'multer';
import {
  BaseHttpController,
  controller
  httpPost,
} from 'inversify-express-utils';
import { inject } from 'inversify';

const storage = multer.memoryStorage();
const upload = multer({
  storage,
  limits: { fileSize: 100 * 1024 * 1024 },
});

@controller('/v1')
export class v1Controller extends BaseHttpController {
  constructor(){
      super();
  }
    
  @httpPost('/', upload.single('file'))
  private async upload(req: express.Request, res: express.Response) {
      const { file, body } = req;
      // Do what you will with the file contents as type Express.Multer.File type
  }
}

相关问题