2016-03-03 96 views
0

我想知道這個貓鼬模型的場景是否會工作,我目前無法測試它。從模型的模式訪問貓鼬模型

var xSchema = new mongoose.Schema({ 
    Data: String 
}); 

xSchema.methods.getData = function(ID){ 
    SSS.findById(ID, function(err, found){ 
     if(err) throw err; 
     return found; 
    } 
} 

SSS = mongoose.model('x', xSchema); 

請問SSS.getData()是否正確地返回Data

回答

1

這是我的測試代碼,請確保mongoose.model的第一個參數應該與SSS相同,就像我的代碼如下所示。

var xSchema = new mongoose.Schema({ 
    Data: String 
}); 
xSchema.methods.getData = function(ID, callback){ 
    SSS.findById(ID, function(err, found){ 
     if(err) throw err; 
     else 
      callback && callback(found); 
    }); 
} 
var SSS = mongoose.model('SSS', xSchema); 


function findX() { 
    var s1 = new SSS({data: 'dd'}); 
    // the `"56d7c1b29741d2982750c725"` is the `_id` of `{Data: 'test'}` 
    s1.getData("56d7c1b29741d2982750c725", function(d) { 
     console.log(d); 
    }) 
} 

function saveX() { 
    var s = new SSS({Data: 'test'}); 
    s.save(function (err) { 
     if (err) 
      console.log(err); 
     else 
      console.log('save sss successfully'); 
    }); 
} 

xSchema.methods定義instance method,也許Statics方法是在你的情況下更好地

xSchema.statics.getData = function (ID, cb) { 

然後你就可以通過

SSS.getData(ID, cb) 
訪問此方法