Node.js 如何修复MongoDB文档只是id和

Node.js 如何修复MongoDB文档只是id和,node.js,json,mongodb,express,mongoose,Node.js,Json,Mongodb,Express,Mongoose,当我尝试向数据库中添加帖子时,JSON正文非常好,但当我检索这些帖子时,它只显示id和_v(versionKey) 我试过用不同的方式使用身体分析器,比如 app.use('bodyParser.json()') var urlencodedParser = bodyParser.urlencoded({ extended: false }) var jsonParser = bodyParser.json(); 最后两个包含在app.post方法中 这是我的index.js const e

当我尝试向数据库中添加帖子时,JSON正文非常好,但当我检索这些帖子时,它只显示id和_v(versionKey)

我试过用不同的方式使用身体分析器,比如

app.use('bodyParser.json()')

var urlencodedParser = bodyParser.urlencoded({ extended: false })
var jsonParser = bodyParser.json();
最后两个包含在app.post方法中

这是我的index.js

const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');

const app = express();
const port = 4000;
const postRoutes = express.Router();

let Post = require('./post.model');

var urlencodedParser = bodyParser.urlencoded({ extended: false })
var jsonParser = bodyParser.json();

app.use(cors());
app.use('/', express.static('public'));
app.use(bodyParser.json());

app.use('/posts', postRoutes);


mongoose.connect("mongodb://127.0.0.1:27017/mern-blog-test", { useNewUrlParser: true });
const connection = mongoose.connection;

connection.once('open', function() {
    console.log('Succesfully established connection to MongoDB Database');
})

postRoutes.route('/').get(function (req, res) {
    Post.find(function (err, posts) {
        if (err) {
            console.log(err);
        } else {
            res.json(posts);
        }
    });
});


postRoutes.route(':id').get(function(req,res) {
    let id = req.params.id;
    Post.findById(id, function(err, post) {
        res.json(post);
    });
});

// todoRoutes.route('/add').post(function (req, res) {
//     let todo = new Todo(req.body);
//     todo.save()
//         .then(todo => {
//             res.status(200).json({ 'todo': 'todo added successfully' });
//         })
//         .catch(err => {
//             res.status(400).send('adding new todo failed');
//         });
// });

app.get('/create', function(req,res){
    res.sendFile(__dirname + '/public/add.html');
})

app.post('/makepost', urlencodedParser, function(req,res) {
    console.log(req.body);
    let post = new Post(req.body);
    post.save()
        .then(todo => {
            res.sendFile(__dirname + '/public/add.html')
        })
        .catch(err => {
            res.status(400).send('adding new post failed!');
        });
});
这是我的表格

        <label for="title">Title</label>
        <input type="text" name="title">
        <label for="category">Category</label>
        <select name="category">
            <option>Coding</option>
            <option>Music</option>
            <option>Books</option>
            <option>Other Stuff</option>
        </select>
        <label for="content">Content</label>
        <input type="text" name="content">
        <input type="submit">
    </form>
我希望输出是

[{"_id":"5d76a7e78b55cd3309b91ecf", "title": "blah", category: "blah", "content": "blah", "__v":0}]
但它是

[{"_id":"5d76a7e78b55cd3309b91ecf","__v":0}]

对不起,我自己弄明白了。表单正在输出不在模型中的字段。将表格更改为

<form id="add-form" method="POST" action="/makepost">
        <label for="post_title">Title</label>
        <input type="text" name="post_title">
        <!-- <label for="post_category">Category</label>
        <select name="post_category">
            <option>Coding</option>
            <option>Music</option>
            <option>Books</option>
            <option>Other Stuff</option>
        </select> -->
        <label for="post_date">Content</label>
        <input type="date" name="post_date">
        <label for="post_content">Content</label>
        <input type="text" name="post_content">
        <input type="submit">
    </form>

标题
内容
内容
基本上只是更改输入字段的名称以匹配模型

<form id="add-form" method="POST" action="/makepost">
        <label for="post_title">Title</label>
        <input type="text" name="post_title">
        <!-- <label for="post_category">Category</label>
        <select name="post_category">
            <option>Coding</option>
            <option>Music</option>
            <option>Books</option>
            <option>Other Stuff</option>
        </select> -->
        <label for="post_date">Content</label>
        <input type="date" name="post_date">
        <label for="post_content">Content</label>
        <input type="text" name="post_content">
        <input type="submit">
    </form>