Reputation: 281
I'm trying to send an object full of data I scraped to a collection on my server. Problem is, it doesn't save whenever I send it to the backend. I'm sending the information to a collection named events
. The content constantly sends back a success! You saved a new item.
Everytime I check events, however,
it's empty. Here's my code:
Controller
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.");
}
});
}
});
}
Model
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),
}
I've used a very similar format on another model, and it saves data just fine. Any hints?
Upvotes: 0
Views: 334
Reputation: 193
In the if statement of the save method if(error)
should be if(err)
, error
doesn't exist.
According to mongoose, your save method should be..
newEvents.save(function(err){
if(err){
console.log("Error: " + err);
}else{
console.log("success! You saved a new item.");
}
});
Or you can use the create method instead
scrap.eventList.create(newEvents, function(err, doc){
if(err)
{ console.log("Error:" + err);}
else{ console.log("success! You saved a new item.");}
});
Upvotes: 1