форма-данные в почтальоне, отправляющем пустой объект на node.js

#javascript #node.js #express

Вопрос:

Я знаю, что об этом спрашивали несколько раз, но я оглядывался вокруг и все еще не мог найти ответа на свою проблему.

index.js файл

 const express = require("express");
require("dotenv").config({
  path: ".env",
});
const PORT = process.env.PORT || 5000;
const runDatabase = require("./config/database");
const path = require('path')

const app = express()
const cors = require('cors')

app.use(cors())
app.use(express.json())
app.use(express.urlencoded({ extended: true }));

app.use("/uploads", express.static(path.join(__dirname, "uploads")));

// routers
const userRouter = require("./router/usersRouter");
const categoryRouter = require("./router/categoryRouter");
const productRouter = require("./router/productRouter");

app.use("/api", userRouter);
app.use("/api", categoryRouter);
app.use("/api", productRouter);

app.listen(PORT, () => {
  runDatabase();
  console.log(`🚀The Backend Server is up and running on port ${PORT}🚀`);
});


 

файл контроллера

 exports.createCategory = async (req, res) => {
  try {
    const { title, sort } = req.body;
    console.log(req.body); // print empty object

    await categoryModel.create({
      title,
      sort,
    });
    return res.status(200).send("created");
  } catch (err) {
    return res.status(400).send(err.message);
  }
};
 

Вот мой код, при отправке запроса в JSON необработанный почтальон ответ-это то, что мне нужно, но при использовании данных формы он вернет пустое тело

это происходит, когда я отправляю данные с формой-данные возвращают пустое тело введите описание изображения здесь

это происходит, когда я отправляю данные с помощью raw (Json), возвращая то, что мне нужно введите описание изображения здесь

Ответ №1:

Если вы воспользуетесь этой опцией "x-www-form-urlencoded" , я думаю, это сработает. Так вот в чем дело:

  • Когда вы используете postman’s "form-data" , это будет рассматриваться как multipart/form-data то, для чего вам нужна библиотека для анализа данных формы, таких как multer.
  • Для x-www-from-urlencoded необработанных данных вы можете проанализировать данные с помощью встроенных промежуточных программ express или использовать анализатор тела.