#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 или использовать анализатор тела.