SailsJS + AngularJS(注册) - 如何将对象从SailsJS Action返回到AngularJS

时间:2016-01-12 01:40:30

标签: angularjs node.js callback sails.js next

我试图使用angularJS实现重定向到新的用户配置文件;但是,在成功创建用户后,我无法将用户对象从Sails Action返回到angular。因此,我没有用户ID,以便使用angular渲染页面。

我正在使用默认的SailsJS架构。

以下是 SignUpController.js 中的 Angular 代码(我知道在控制器中发出http请求并不是最好的主意)

angular.module('SignupModule').controller('SignupController', function ($scope, $http, $location) {

$scope.submitSignupForm = function (){
  console.log("clicked");
  $scope.successMessage = false;
  $scope.errorMesaage   = false;

  $http.post('/signup', {
    name: $scope.signupForm.name,
    pass: $scope.signupForm.pass
  }).then (function onSuccess(res){

    $scope.successMessage = true;

    // render the profile of a new user 
    // did not get user object from sails
    // res object return status of request but not user object 

  }).catch(function onError(res){
    $scope.errorMesaage   = true;
  })
}

});

这是我在 UserController.js 中的 SailsJS 代码。(我试图返回res.send()和res.json()但它没有'工作。)

module.exports = {

//create new user
create: function (req, res, next) {

  //check if user exists
  User.findOne({name: req.param('name')}).exec(function findOneCB(err, found){
    if(err) return next(err);

    //if user does not exist create one; otherwise exit
    if(!found){

    User.create (req.params.all(), function userCreated(err, user){
        if(err) return next(err);

        /* return user object to angular */

        //return res.send(user);
        //return res.json(user);
      });
    } else {
      return next();
    }
   });
  }
};

这里是 config / routes.js

  'GET /signup': {
   view: 'signup'
  },
  'POST /signup': {
    controller: 'UserController',
    action: 'create'
   },

工作流程应如下所示:

  • 用户点击了提交按钮
  • submitSignupForm会向' / signup'
  • 创建一个帖子请求
  • Sails在routes.js
  • 中处理此请求
  • Sails通过Sails PostgreSQL适配器创建新用户
  • Sails将用户对象返回给AngularJS !!! - 不起作用
  • AngularJS使用user.id渲染用户个人资料页面! - 不起作用

谢谢! :)

1 个答案:

答案 0 :(得分:0)

你可以这样做,

span