Mongoose:模型不保存传递给它的数据

时间:2016-04-21 17:54:02

标签: node.js mongodb mongoose

我正在尝试将一个充满数据的对象发送到我服务器上的一个集合中。问题是,每当我发送到后端时它都不会保存。我将信息发送到名为events的集合。内容不断发回success! You saved a new item.每次我检查事件,但是, 它是空的。这是我的代码:

控制器

var CronJob = require('cron').CronJob;
var scrape = require("../models/dataScrape");

//code requesting data...

for(var i = 0; i < titles.length; i++){
                data.push({"festival" : titles[i], "date" : dates[i], "url" : links[i]});
}

var _id = "12345";
var body = {"_id" : _id, "events" : data};

var job = new CronJob('0*/1 * * * *', function(req, res){
    scrape.eventList.find({}, function (err, count) {
        if (!err && count.length == 0) {
            var newEvents = new scrap.eventList(body);
            newEvents.save(function(err, data){
                if(error){
                    console.log("Error: " + err);
                }else{
                    console.log("success! You saved a new item.");
                }
            });
        }else{
            scrape.eventList.update({_id: body._id}, body, function(err){
                console.log("update");;
                if(err){
                    console.log(err);
                }else{
                    console.log("success! you updated an item.");
                }
            });
        }
    });
}

模型

var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/BackYardBrewing");

var eventsSchema = mongoose.Schema({
    id          : {type : String},
    events      : [{
                        festival : String,
                        date     : String,
                        url      : String,
                    }],
})

module.exports = {
    eventList      : mongoose.model("event", eventsSchema),
}

我在另一个模型上使用了非常相似的格式,它可以很好地保存数据。任何提示?

1 个答案:

答案 0 :(得分:1)

在保存方法if(error)的if语句中应为if(err)error不存在。

根据猫鼬,你的保存方法应该是..

newEvents.save(function(err){
            if(err){
                console.log("Error: " + err);
            }else{
                console.log("success! You saved a new item.");
            }
        });

或者您可以使用create方法

scrap.eventList.create(newEvents, function(err, doc){
    if(err)
        { console.log("Error:" + err);}
    else{ console.log("success! You saved a new item.");}
});