Carregar o URL da imagem em nodejs
Estou usando o nodejs multer para fazer upload de um arquivo de imagem para o diretório de uploads de imagens. Após o upload, como esta imagem em particular pode ser exibida na tag html img no navegador do cliente. Qual é o url?
Quando digito http: // localhost: 3000 / uploads / 1591342432.jpeg, ele diz que não é possível obter o arquivo.
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "./uploads/");
},
filename: function (req, file, cb) {
cb(null, Date.now() + ".jpeg");
},
});
const upload = multer({ storage: storage });
router.post("/upload", upload.single("file"), async (req, res) => {
try {
console.log("uploading...");
console.log(req.file.filename);
res.json({ cool: "yes" });
// res.json({ file: req.file });
} catch (error) {
console.log(error);
}
});
Respostas
Parece que você está usando o multer para enviar imagens para uma pasta local chamada uploads.
Vou recomendar o seguinte tutorial: upload img to firebase
Este tutorial usa multer para fazer upload do Cloud Firebase. Depois de fazer o upload da imagem, você receberá o link para a imagem onde ela está armazenada na nuvem e o mesmo link que você pode usar no outro servidor
Acho que preciso definir um diretório estático:
app.use(express.static("uploads"));
Então posso acessar o arquivo de imagem como:
http://localhost:3000/1599134489853.jpeg
Se ainda não o fez, você precisará definir o caminho GET para o recurso de imagem ao tentar obter via http://localhost:3000/1599134489853.jpeg. Para um aplicativo expresso, parece que o método simples / preferido atual para retornar o arquivo é res.sendFile . Caso contrário, você pode gerar fluxo e retornar conforme demonstrado aqui .