收集数据并作出响应SailsJS
问题描述:
我刚开始学SailsJS,我遇到了以下问题:收集数据并作出响应SailsJS
在UserController中我有以下方法:
/**
* `UserController.create()`
*/
create: function (req, res) {
var d = {};
c = {'fullname' : 'Sergiu Pirlici'}
User.findOne(c, function(err, found) {
d.found = found;
});
User.destroy(c, function(err){
d.destroyed = !err;
});
if(req.method == 'GET') {
res.view(d);
}
else if(req.method == 'POST') {
var dat = req.params.all();
User.create(dat, function(err, created){
d.err = err;
if(!err) {
d.created = created;
}
});
}
d.foo = true;
res.json(d);
},
在可变d
我想收集数据并传递给JSON查看或发送。
但在d
的值是{'foo': true}
。
我明白,这是因为先例动作是异步的。
是否有另一种方式收集数据并将其传递给响应?
我该怎么做?
答
您可以使用服务http://sailsjs.org/#/documentation/concepts/Services 然后传递一个回调参数。
等等UserService.js
module.exports = {
FindOne: function(cb){
User.findOne(c, function(err, found) {
cb(found);
});
}
};
那么你的控制器上:
UserService.FindOne(function(found){
//other logic
var d = { result : found } ;
res.json(d);
});