node.js - 使用猫鼬保存到数据库时出现 ObjectParameterError
问题描述
到目前为止,我正在制作一个小型博客,一切都很好,但是现在我尝试为类别添加第二个架构,但出现了这个错误 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)
...
}
第一个声明有效,但第二个向我发送错误 Full 错误:
ObjectParameterError: Parameter "obj" to Document() must be an object, got <text>
这是req.body
:
body: {
category: 'wdawda',
title: 'awdawd',
snippet: 'dawdaw',
body: 'dawdawda'
}
猫鼬模式:
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 });
...
}
我直接传递具有“类别”属性而不是“类别”值的对象。
推荐阅读
- r - 循环特定列数据并将结果添加为 R 中的新列
- r - 在 r 中填充一个 4-D 数组
- javascript - 专注于 v-for 问题中的 textarea
- python - sqlite3什么时候回滚python中的事务,什么时候不回滚?
- c# - Unity2D:修复库存冲突
- java - Android:如何使用 Java 在文本视图中显示动态 HTML 字符串
- image - Coredata 图像转换 swiftUI
- c++ - 触发 Embarcadero 10.2.3 Erreur ilink32
- python - 如何从嵌套列表中删除小于给定长度的条目
- mysql - Laravel 登录超时