Tratamento de arquivo (multer
)
Definição
O módulo multer
é um middleware para manipular com arquivos no Node.js (multipart/form-data).
Configuração
-
Instalar o pacote
multer
com NPM:$ npm i multer
-
Importar o módulo:
import multer from "multer";
-
Definir o objeto de configuração do
multer
para salver arquivos em disco:{ storage: multer.diskStorage({ // função para filter as extensões de arquivo permitidas (opcional), // função para salvar o arquivo, // função para normalizar o nome do arquivo, }); }
Exemplo
import multer from "multer";
import { extname, resolve } from "path";
const aleatorio = () => Math.floor(Math.random() * 10000 + 10000);
export default {
storage: multer.diskStorage({
fileFilter: (req, file, callback) => {
if (file.mimetype !== "image/png" && file.mimetype !== "image/jpeg") {
return callback(
new multer.MulterError("Arquivo precisa ser PNG ou JPG")
);
}
return callback(null, true);
},
destination: (req, file, callback) => {
callback(null, resolve(__dirname, "..", ",,", "upload"));
},
filename: (req, file, callback) => {
callback(null, `${Date.now()}_${aleatorio}${extname(file.originalname)}`);
},
}),
};