首页 > 解决方案 > 未定义的对象,使用 NodeJS 和 Mongoose 从 MongoDB 获取模式较少的数据

问题描述

我正在尝试在 mongoDB 中使用 mongoose 作为无模式在工作期间保存数据工作正常但是当我尝试获取数据时出现问题

这是模型创建代码:

const TemplateSchema = new Schema({
    any: {},
    blog: {
        type: Schema.Types.ObjectId,
        ref:'blogs'
    },
    user:{
        type: Schema.Types.ObjectId,
        ref:'users'
    },
    date:{
        type: Date,
        default: Date.now
    }
},{ strict: false });

保存代码:

let newTemplate = {
    tempbody: { name: 'Laith', age: 26 },
    blog: blog.id,
    user: req.session.userid,
}
//console.log(inputObject);
new Template(newTemplate).save()
    .then((template) => {
        res.redirect(`/blogs/posts/${req.params.blogid}`);
    });

获取代码:

Template.findOne({_id: req.params.templateid}).populate('blog').then(template =>{//To Fetch ObjectID for Blog from DB 
    if(template && template.blog.blogID == req.params.blogid) {
        console.log(template.tempbody);
        res.render('blogs/addPostTemplate', {
            template: template,
            blogid: req.params.blogid,
            templateid: req.params.templateid
        });
    } else {
        res.redirect(`/blogs/posts/${req.params.blogid}`);
    }
});

结果假设为: Object tempbody 但它始终未定义,如果我尝试获取 template._id 它工作正常,如果我将模板打印为完整对象,它也会给出结果

有时给出:(node:16840) [DEP0079] DeprecationWarning: Custom inspection function on Objects via .inspect() is deprecated

任何帮助表示赞赏。

标签: javascriptnode.jsmongodbmongoosemongoose-schema

解决方案


推荐阅读