猫鼬将空白对象保存到数据库

时间:2019-07-07 19:39:38

标签: javascript node.js mongodb express mongoose

我正在用猫鼬创建一个架构,该架构由具有String和Boolean变量的对象组成。 我的意图是使用我的Web应用程序中的发布请求通过调试代码来验证该数据库,该代码已验证数据已到达后端OK。 我将对象保存到数据库,如下所示。 从mongo控制台检查数据库时,我发现虽然已将新对象添加到集合中,但新对象不具有我在架构中指定的任何属性,而仅具有_id和其他两个默认值。

还注意到了一些奇怪的事情: 在以前的类似项目中,我通常会在单独的模块中创建模式和模型,然后导出模型。 但是,在这个项目中,我已经导出了架构并在主路由文件中从中创建了模型,否则,每当尝试从模型中创建新对象时,服务器就会崩溃,并显示“ todoModel不是构造函数”。这从未发生过,我不确定为什么现在会发生。

我不确定这两个方面我在做什么错。

在本地主机上运行后端堆栈。

MongoDB 2.6 Express / Node.js

架构创建:



var mongoose = require("mongoose");
var hosts = require("./hosts.js");

const host = hosts["host"];
const port = hosts["port"];

mongoose.connect("mongodb://"+host+"/todoSite",{ useNewUrlParser: true },function(err){
    if(err)
        console.log(err);
    else
        console.log("Todo mongo connected");

});


var todoSchema = new mongoose.Schema({
        text:String,
        done: Boolean
    });


 //var todoModel = mongoose.model("todo",todoSchema);

module.Exports = todoSchema;

在服务器中发布路由:

app.post("/",function(req,res){
    var new_todo = new todoModel({"text": req.body.text,"done": false});
    new_todo.save(function(err,todo){
        if(err)
            console.log(err);
        else
            console.log(todo);
        });

});

{“ _id”:ObjectId(“ 5d223b54c772906a65603088”,“ __v”:0}

“保存”后出现在数据库中的对象

0 个答案:

没有答案