Skip to content
This repository has been archived by the owner on Jul 9, 2018. It is now read-only.

Latest commit

 

History

History
28 lines (22 loc) · 990 Bytes

README.md

File metadata and controls

28 lines (22 loc) · 990 Bytes

travetto: Asset-Express

Asset Express, provides a clean and direct mechanism for handling uploads via the express framework, as well as some best practices with respect to temporary file deletion.

Once the files are uploaded, they are exposed on express's request object as req.files. The uploaded files are constructed as Asset instances, which allows for easy interoperability with the Asset module for storage.

@Controller('/avatar')
class Controller {

  constructor(assetService: AssetService, imageService: ImageService) {}

  @AssetUpload()
  @Post('/')
  async setAvatar(req:Request, res:Response) {
    const stored = await this.assetService.store(req.files[0]);
    return {
      path: stored.path
    };
  }

  @Get('/:path')
  async getAvatar(req:Request) {
    return await this.imageService.get(req.params.path, {w: req.query.w, h: req.query.h});
  }
}