I would like to separate Mongoose coins in a separate file. I tried to do it as follows:
var mongoose = require("mongoose"); var Schema = mongoose.Schema; var ObjectId = Schema.ObjectId; var Material = new Schema({ name : {type: String, index: true}, id : ObjectId, materialId : String, surcharge : String, colors : { colorName : String, colorId : String, surcharge : Number } }); var SeatCover = new Schema({ ItemName : {type: String, index: true}, ItemId : ObjectId, Pattern : String, Categories : { year : {type: Number, index: true}, make : {type: String, index: true}, model : {type: String, index: true}, body : {type: String, index: true} }, Description : String, Specifications : String, Price : String, Cost : String, Pattern : String, ImageUrl : String, Materials : [Materials] }); mongoose.connect('mongodb://127.0.0.1:27017/sc'); var Materials = mongoose.model('Materials', Material); var SeatCovers = mongoose.model('SeatCover', SeatCover); exports.Materials = Materials; exports.SeatCovers = SeatCovers;
Then I tried to use the model as follows:
var models = require('./models'); exports.populateMaterials = function(req, res){ console.log("populateMaterials"); for (var i = 0; i < materials.length; i++ ){ var mat = new models.Materials(); console.log(mat); mat.name = materials[i].variantName; mat.materialId = materials[i].itemNumberExtension; mat.surcharge = materials[i].priceOffset; for (var j = 0; j < materials[i].colors.length; j++){ mat.colors.colorName = materials[i].colors[j].name; mat.colors.colorId = materials[i].colors[j].itemNumberExtension; mat.colors.surcharge = materials[i].colors[j].priceOffset; } mat.save(function(err){ if(err){ console.log(err); } else { console.log('success'); } }); } res.render('index', { title: 'Express' }); };
Is this a smart approach to linking to a model in a separate module?
rob_hicks Mar 31 '12 at 23:05 2012-03-31 23:05
source share