Sé que esto se ha preguntado varias veces, pero he estado buscando y todavía no puedo encontrar una respuesta a mi problema.
archivo 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}🚀`); });archivo del controlador
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); } };Aquí está mi código, cuando envío la solicitud en JSON raw cartero, lo que necesito es una respuesta, pero cuando uso un formulario de datos, devolverá un cuerpo vacío
esto sucede cuando envío datos con datos de formulario devueltos un cuerpo vacío 
esto sucede cuando envío datos con raw (Json) devolvió lo que necesito 
Si usa la opción "x-www-form-urlencoded" , supongo que funcionará. Entonces, ésta es la cuestión:
Cuando utilice los "form-data" del cartero, se considerarán multipart/form-data para los que necesita una biblioteca para analizar datos de formulario, como multer.
Para los datos sin procesar x-www-from-urlencoded , puede analizar los datos utilizando los middlewares integrados expresos o utilizar un analizador de cuerpo.