MongoDB возвращает пустой объект после запроса POST

#mongodb #server #state #mern

Вопрос:

У меня есть приложение, над которым я работаю, и я впервые использую MERN. Когда я использую свой метод POST, чтобы попытаться создать и возразить в своем состоянии, я получаю такой ответ:

 _id:61305018ed424fc0fa769dd7
__v:0
 

Однако то, что я пытаюсь получить, например, это:

 movementName: squat,
movementWeight: 100
 

Вот мой models/exerciseForm.js:

 import mongoose from 'mongoose';

const movementSchema = mongoose.Schema({
    movementName: String,
    movementWeight: String,
});

export const ExerciseForm = mongoose.model('ExerciseForm', movementSchema);
 

мой controllers/movements.js:

 import { ExerciseForm } from '../models/exerciseForm.js';

export const fetchMovements = async (req,res) => {
    try {
        const postMovement = await ExerciseForm.find();

        res.status(200).json(postMovement);
    } catch(error) {
        res.status(404).json({ message: error.message })
    }
};

export const createMovement = async (req,res) => {
    const move = req.body;

    const newMove = new ExerciseForm(move);
    try {
        await newMove.save();

        res.status(201).json(newMove);
    } catch (error) {
        res.status(409).json({ message: error.message });
    }
};
 

вот мой routes/movements.js

 import express from 'express';
import { fetchMovements, createMovement } from '../controllers/movements.js';

const router = express.Router();

router.get('/', fetchMovements); 
router.post('/', createMovement); 

export default router;
 

вот мой server/index.js (Я использую свое правильное имя пользователя/пароль):

 import express from 'express';
import mongoose from 'mongoose';
import cors from 'cors';
import movementRoutes from './routes/movements.js';

const app = express();

app.use(cors());

app.use('/movements', movementRoutes)

const CONNECTION_URL = 'mongodb srv://<username>:<password>@cluster0.z0e85.mongodb.net/myFirstDatabase?retryWrites=trueamp;w=majority';
const PORT = process.env.PORT || 5000;

mongoose.connect( CONNECTION_URL )
    .then(() => app.listen(PORT, () => console.log(`Server running on port ${PORT}`)))
    .catch((error) => console.log(error.message));
 

Я полагаю, что ошибка где-то в этих файлах, он же мой сервер. Если все здесь выглядит нормально, то,возможно, это в моих действиях, редукторе и т. Д., И я попытаюсь посмотреть там.

Комментарии:

1. попробуйте подключить мангуста перед использованием приложения («/движения», маршруты перемещения).

Ответ №1:

установите body-parser с npm помощью и добавьте эти строки в свой импорт индексного файла

 import bodyParser from 'body-parser';
app.use(bodyParser.json(extended: true }));
 

Комментарии:

1. Спасибо! Я работаю над этим уже два дня. Единственное, что я получаю в своем коде сообщение «синтаксический анализатор тела устарел». Вы случайно не знаете, почему это так?