Thank you guy On Tuesday, August 13, 2013 2:46:55 AM UTC+2, Rick Waldron wrote: > > `this.collection` doesn't yet exist, so the `else` path in `saveData` is > being taken, which is sent to `connectDB` which calls > `MongoClient.connect`, but does not bind `this` to the callback. > > This change should work: > > this.connectDB(this.saveData.bind(this)); > > > > > > On Mon, Aug 12, 2013 at 7:22 PM, bodo <vuducb...@gmail.com > <javascript:>>wrote: > >> I did a pretty code: >> >> var Square = function(id,order,color,state) { >> >> this.id = id; >> this.order = order; >> this.color = color; >> this.state = state; >> this.connected = false; >> >> MongoClient.connect(config.mongoURL, (function(err, db) { >> this.connected = true; >> this.db = db; //db >> this.collection = db.collection("squares"); //collection >> }).bind(this)); >> } >> >> Square.prototype.connectDB = function(callback){ >> >> (function(that){ >> MongoClient.connect(config.mongoURL, function(err, db) { >> console.log("connected"); >> this.connected = true; >> this.db = db; //db >> this.collection = db.collection("squares"); //collection >> >> //callback(that); >> callback(); >> >> }); >> >> })(this); >> } >> >> >> Square.prototype.test = function(){ >> console.log("test"); >> } >> >> //export data >> Square.prototype.exportData = function(){ >> >> var rtArr = { >> id:this.id, >> order:this.order, >> color:this.color, >> state:this.state >> }; >> >> return rtArr; >> } >> >> //save datas to mongo >> Square.prototype.saveData = function () { >> >> if (this.collection){ >> >> *var doc = this.exportData();* >> this.collection.insert(doc,function() { >> console.log('inserted'); >> }); >> }else{ >> this.connectDB(this.saveData); >> } >> } >> >> var square = new Square(6,1,'red',1); >> square.saveData(); >> >> When I run this code, that display: >> >> throw err >> ^ >> TypeError: Object #<Object> has no method 'exportData' >> >> Why it can not understand *var doc = this.exportData(); ?* >> * >> * >> Someone can help me ? Thank you very much >> >> -- >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to nod...@googlegroups.com<javascript:> >> To unsubscribe from this group, send email to >> nodejs+un...@googlegroups.com <javascript:> >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to nodejs+un...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > >
-- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.