Сохранение .wav-файла, отправленного Postman, в Node.js с использованием Multer - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь отправить wav-файл в качестве запроса POST на мою конечную точку Node.js API и сохранить файл на сервере. Вот что я пытался протестировать Multer:

const multer = require("multer");

const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, "/uploads");
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + "-" + Date.now());
  },
});

const upload = multer({ storage: storage }).single("audio");


app.post("/api/upload", function (req, res) {
      upload(req, res, function (err) {
        if (err instanceof multer.MulterError) {
          // A Multer error occurred when uploading.
        } else if (err) {
          // An unknown error occurred when uploading.
        }
        // Everything went fine.
        const audio = req.files;
        console.log(audio);
      });
    }

Но когда я делаю POST-запрос с Postman на мою конечную точку, я получаю undefined от console.log(audio); В моем POST-запросе я помещаю пара ключ-значение audio: test.wav в разделе форма-данные тела запроса. Что я делаю не так и как мне получить доступ к отправляемому wav-файлу, чтобы использовать его позже?

Мне также интересно узнать, есть ли лучший способ сделать то, что я хочу сделать.

Редактировать. Это правильно?

app.use(
  bodyParser.urlencoded({
    extended: "true",
  })
); // Parse application/x-www-form-urlencoded
app.use(bodyParser.json()); // Parse application/json
app.use(
  bodyParser.json({
    type: "application/vnd.api+json",
  })
); // Parse application/vnd.api+json as json

app.use(bodyParser.raw({ type: "audio/wav" }));
...