Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 收集数据并做出响应_Javascript_Node.js_Sails.js - Fatal编程技术网

Javascript 收集数据并做出响应

Javascript 收集数据并做出响应,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我刚开始学习SailsJS,遇到了以下问题: 在UserController中,我有以下方法: /** * `UserController.create()` */ create: function (req, res) { var d = {}; c = {'fullname' : 'Sergiu Pirlici'} User.findOne(c, function(err, found) { d.found = found;

我刚开始学习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);
  },
在variable
d
中,我想收集数据并将其传递给view或作为JSON发送

但是
d
的值是
{'foo':true}

我知道这是因为先例操作是异步的

是否有其他方法收集数据并将其传递给响应

我怎样才能做到这一点?

您可以使用服务 然后传递一个回调参数

所以在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);
});