Получение неопределенного значения для загрузки файла в узел js с использованием multer

Я не могу загрузить какой-либо файл или изображение, используя пакет multer node в Mac. Но тот же код отлично работает в Windows. Я использую почтальона для вызова API. когда я нажимаю API и внутри журнала консоли, я получаю неопределенный для req.file

const express = require('express');
        const app = express();
        const multer  = require('multer');
        const storage = multer.diskStorage({
           destination: function (req, file, cb) {
             cb(null, 'uploads')
           },
           filename: function (req, file, cb) {
              console.info(file)
           //   const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
             cb(null, file.originalname)
           }
         })
        const upload = multer({storage: storage})
        
        app.post('/post', upload.single('avatar'), (req,res)=>{
    console.info(req.file)
           if (!req.file) {
              return res.status(400).send([{ msg: "File is missing",err }])
            }
        else{
           return res.status(200).send([{ msg: "working", }])
        }
        });
        app.listen(3000,(err,succes)=>{
         if (err) {
            console.info(err)
         }else{
            console.info("Server is running in port number",3000)
         }
        });

🤔 А знаете ли вы, что...
С Node.js можно легко интегрировать с базами данных, такими как MongoDB и MySQL.


63
1

Ответ:

Решено

Не могли бы вы написать небольшой клиент Nodejs и протестировать его? Это делается для того, чтобы исключить что-то специфическое для почтальона.

Код ниже представляет собой пример клиента Nodejs.

client.js //запускаем его как клиент узла

const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');

const formdata = new FormData();

// adding the file
formdata.append('avatar', fs.createReadStream('./avatar.jpg'));

axios
  .post('http://localhost:3000/post', formdata)
  .then((data) => {
    console.info(data.data);
  })
  .catch((error) => {
    console.info(error);
  });