2016-11-18 27 views
0

您是否能夠從Sails中的Service中調用模型,因爲目前似乎無法使其工作。無法在sails.js中的服務中調用模型

控制器:

index: function (req, res) { 
var results = StudentService.findAllStudents(); 
return res.view('student/index', { 
    students: results 
}); }, 

服務:

findAllStudents: function (options, done) { 
    Student.find({}).exec(function (err, results) { 
     if (err != null && err.message != null) { 
     sails.log.error(err.message); 
     } else { 
     return results; 
     } 
    }); 
    } 

在調試,我注意到了find方法似乎並沒有被甚至稱。 sails.js的服務層是否無法訪問連接?當我將模型代碼移回到控制器層時,模型代碼正常工作。我究竟做錯了什麼?

回答

3

更改您的服務代碼以接受回調。

findAllStudents: function (options, callback) { 
    Student.find({}).exec(function (err, results) { 
     return callback(err, results); 
    }); 
    } 

更改控制器代碼以傳遞迴調函數以處理結果或處理錯誤。

index: function (req, res) { 
    var opts = {}; 
    var results = StudentService.findAllStudents(opts, function(err, results){ 
     return res.view('student/index', { 
      students: results 
     }); 
    }); 
},