MongoDB 在 POST 请求后返回空白对象
MongoDB returning blank object after POST request
我正在开发一个应用程序,这是我第一次使用 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(我使用的是正确的 username/password):
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=true&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));
我认为错误出在这些文件中的某处,也就是我的服务器中。如果这里一切正常,那么可能是我的操作、reducer 等问题,我会尝试查看那里。
使用 npm
安装 body-parser
和
在你的索引文件中添加这些行 import
import bodyParser from 'body-parser';
app.use(bodyParser.json(extended: true }));
我正在开发一个应用程序,这是我第一次使用 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(我使用的是正确的 username/password):
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=true&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));
我认为错误出在这些文件中的某处,也就是我的服务器中。如果这里一切正常,那么可能是我的操作、reducer 等问题,我会尝试查看那里。
使用 npm
安装 body-parser
和
在你的索引文件中添加这些行 import
import bodyParser from 'body-parser';
app.use(bodyParser.json(extended: true }));