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.


Reply via email to