使用mongoose保存到数据库时出现ObjectParameterError



我正在做一个小博客,直到现在一切都很好,但现在我试图为类别添加第二个Schema,我得到了这个错误ObjectParameterError: Parameter "obj" to Document() must be an object, got。这是代码中感兴趣的部分:

const blog_create_post = (req, res) => {
const blog = new Blog(req.body);
const category = new Category(req.body.category)
...
}

第一个声明有效,但第二个声明给我发了错误完全错误:

ObjectParameterError: Parameter "obj" to Document() must be an object, got <text>

这是req.body:

body: {
category: 'wdawda',
title: 'awdawd',
snippet: 'dawdaw',
body: 'dawdawda'
}

Mongoose架构:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const categorySchema = new Schema({
category: {
type: String,
required: true
}
});
const Category = mongoose.model('Category', categorySchema);
module.exports = Category;

我试过这个:

var things = req.body.category
const category = new Category(things);

在下一行之前我没有任何错误。这就是整个功能:

const blog_create_post = (req, res) => {
const blog = new Blog(req.body);
var things = { category: req.body.category };
const category = new Category(things);
if (!Category.exists({ category: things })) {
console.log('category not exist');
category.save()
.then((result) => {
blog.save()
.then((result) => {
res.redirect('/blogs');
})
.catch((err) => console.log(err));
})
.catch((err) => res.send(err));
} else {
console.log('category exist');
blog.save()
.then((result) => {
res.redirect('/blogs');
})
.catch((err) => console.log(err));
}
}

新的错误是:

UnhandledPromiseRejectionWarning: CastError: Cast to string failed for value "{ category: 'awdawd' }" at path "category" for model "Category"

你可以试试这个:

const category = new Category({ category: req.body.category })

blog_create_post函数中的这一行:

const blog_create_post = (req, res) => {
const blog = new Blog(req.body);
const category = new Category({ category: req.body.category });
...
}

我用";类别";属性而不是";类别";值。

最新更新