我有一个表单,我希望能够将其内容发布到我在后端连接的 MongoDB 服务器,但是当我执行 POST 时,我收到错误“帖子验证失败:帖子:值转换为字符串失败”{ }”在路径“post”,我不知道为什么。我刚刚开始反应,所以如果解决方案很简单,请原谅我。
这是我的表单页面:
import React from 'react';
import axios from 'axios';
export default class PostList extends React.Component {
state = {
post: '',
}
handleChange = event => {
this.setState({ post: event.target.value });
}
handleSubmit = event => {
event.preventDefault();
const post = {
post: this.state.name
};
axios.post('http://localhost:5000/posts', { post })
.then(res => {
console.log(res);
console.log(res.data);
})
}
render() {
return (
<div className="flex-container-home">
<div className="app">
<form onSubmit={this.handleSubmit}>
<label>
Post:
<input type="text" name="post" onChange={this.handleChange} />
</label>
<button type="submit">Add</button>
</form>
</div>
</div>
)
}
}
这是我的路由器:
const express = require("express")
const router = express.Router()
const Post = require('../models/posts')
router.post('/', async (req, res) => {
const post = new Post({
post: req.body.post,
});
try {
const savedPost = await post.save()
res.json(savedPost);
} catch (err) {
res.json({ message: err });
}
})
module.exports = router;
这是我的架构:
const mongoose = require('mongoose');
const PostSchema = mongoose.Schema({
post: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
})
module.exports = mongoose.model('Posts', PostSchema)
拉风的咖菲猫
相关分类