如何在Nodejs上发表评论

时间:2019-05-29 08:38:34

标签: node.js reactjs

我正在使用Nodejs和React创建一个应用程序,但是注释功能不起作用。我不知道原因。

错误:

  

板验证失败:comment.0.content:路径content是必需的。

我不知道为什么这不起作用。我犯了什么错误?

route / api / board.js

router.post(
    '/:id/comments',
    [
        auth,
        [
            check('content', 'input your content. ')
                .not()
                .isEmpty()
        ]
    ],
    async (req, res) => {
        const errors = validationResult(req);
        if (!errors.isEmpty()) {
            return res.status(400).json({ errors: errors.array() }, 'isEmpty');
        }

        try {
            const user = await User.findById(req.user.id).select('-password');
            const board = await Board.findById(req.params.id);
            const newComment = new Board({
                content: req.body.content,
                user: req.user.id
            });

            board.comments.unshift(newComment);

            await board.save();

            res.json(board.comments);
        } catch (err) {
            console.error(err.message);
            res.status(500).send('Server error!!');
        }
    }
);

models / Board.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const BoardSchema = new Schema({
    user: {
        type: Schema.Types.ObjectId,
        ref: 'user'
    },
    title: {
        type: String,
        required: true
    },
    description: {
        type: String,
        required: true
    },
    view_count: {
        type: Number,
        default: 1
    },
    created_at: {
        type: Date,
        default: Date.now
    },
    likes: [
        {
            user: {
                type: Schema.Types.ObjectId,
                ref: 'user'
            }
        }
    ],
    comments: [
        {
            user: {
                type: Schema.Types.ObjectId,
                ref: 'user'
            },
            content: {
                type: String,
                required: true
            },
            created_at: {
                type: Date,
                default: Date.now
            }
        }
    ]
});

module.exports = Board = mongoose.model('board', BoardSchema);

1 个答案:

答案 0 :(得分:0)

该错误非常明显,comments数组中的注释之一没有属性content,这似乎是基于模型所必需的。

因此,通过调试/记录req.body的内容来仔细检查要发送到服务器的内容。