mysql: Salvando arquivos no mysql com nestjs
Em primeiro lugar não recomendo salvar arquivos no mysql ou em qualquer outro banco de dados. Porém se caso tenha alguma dificuldade em salvar em outro lugar pode a seguir apresento uma opção.
Não conhecia o nestjs até algumas semas atrás contudo nessas 3 semanas desenvolvi meu conhecimento e aprendi bastante sobre o nestjs. Que é um framework construído em cima do express. que me lembra muito o angular em alguns casos.
Porque salvar arquivos no Mysql?
Não tem um motivo certo ou errado, pra salvar arquivos no mysql mas recomenda-se salvar no sistema de arquivos no servidor. Contudo tem outros servidos dedicados para o salvar arquivos como firebase storage ou Amazon S3.
No meu caso comecei a salvar arquivos no mysql porque o servidor de hospedagem não tem suporte a arquivos. Com isso salvar arquivos no banco de dados pode ser uma solução para esse problema caso tenha um parecido.
Exemplo upload arquivos para mysql
Abaixo tem alguns scripts de exemplo de como salvar dados no banco de dados, contudo no meu exemplo usei 3 campos numa tabela. Você pode personalizar ao seu gosto lembre-se que é importante trazer o content-type e nome do arquivo para o Download.
A principio eu ia usar base64 pra salvar os dados dos arquivos porém pesquisando descobrir que o mysql tem o tipo binário bastava só salvar o binário no bd.
Upload de arquivos
Caso seja iniciante e esteja testando essa solução pra salvar arquivos no mysql não se esqueça de fazer upload do arquivo com multipart/form-data no atributo enctype.
Caso precise enviar via axios ou algum cliente lib front você precisa passar o content-type: multipart/form-data e os arquivos devem ser enviados através da classe FormData.
Repositório tamplate exemplo
Abaixo esta o link para o repositório no qual poderá fazer download e testar esta incluído os arquivos de exemplo visto anteriormente.