Cara, você está correndo no caminho errado. Já expliquei em sua solicitação de pergunta anterior que o Multer é usado para salvar arquivos no sistema de disco de arquivos e não diretamente no seu banco de dados. Para isso você deve usar GRIDFS.
Chegando à sua pergunta atual.
app.post('/Upload', upload.single('solution') ,function (req, res, next) {
console.log(req.file);
});
Aqui o
upload.single('solution')
- chama uma função Upload e o nome do arquivo passado é a solução, mas é óbvio o suficiente que não está disponível aqui. use este tipo de formato - documentação do Multer
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage })
A parte de armazenamento é usada para fornecer o caminho para onde seu arquivo deve ser salvo e a seção do nome do arquivo é usada para fazer alterações no nome do arquivo que você gostaria de ter.
Por favor, leia a documentação porque isso vai ajudar. Quando usamos módulos de terceiros, devemos reconhecer as informações que eles já forneceram para que possamos usar seu trabalho com facilidade.
Deixe-me facilitar para você. Aqui está um código pronto que funciona.
Multer lançando erro estranho ao fazer upload de arquivo via upload de arquivo ng
Vá verificar esse tópico. A questão foi levantada por mim - o problema era que eu estava enviando arquivos em formato array, como em vários arquivos de uma só vez. Se você não estiver fazendo isso, apenas altere o segmento ng-file-upload para usar o exemplo de demonstração de upload único e, no código nodejs do lado do servidor, substitua
.array
com .single
e as coisas funcionarão da maneira que você deseja que funcionem - dado que você deseja usar o sistema de disco de arquivos para armazenar arquivos. Repito que este método não ajudará você a salvar o arquivo no mongodb diretamente.
Deixe-me saber se você precisar de mais esclarecimentos.