收集数据并作出响应SailsJS

收集数据并作出响应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); 
});