node express和angular post action

时间:2017-06-23 12:25:18

标签: javascript angularjs node.js express

简介

我有一个有角度的帖子,发布到我的节点快递后端,将数据发送到API,如果发布成功,我希望将用户发送到不同的角度页面,如果不正确则显示错误消息。

我在想如果成功将变量发布到我的角度,我可以在我的范围内使用ng-hide / show或加载新页面,如果变量存在。

但也许有更好的方法可以做到这一点吗?

我的角色帖子

FirstModule.controller('LoginController', function ($scope, $http) {
    $scope.formData = {};

    $scope.LoginForm = function () {
        var data = {
            LoginEmail: $scope.formData.LoginEmail
        };

    $http({
        url: 'http://localhost:8080/back-end/test',
        method: "POST",
        data: data,
        headers: {'Content-Type': 'application/json'}
    }).success(function (data) {
        $scope.formData = data; // assign  $scope.persons here as promise is resolved here
    }).error(function (data, status) {
        $scope.formData = status;
    });
}
});

我的节点向A API发布帖子

这篇文章使用我的角度发送的电子邮件并将其发布到第三部分API,我知道希望采取行动

  • 在传递时发布到我的前面,以便我可以使用角度范围中的变量来隐藏或显示新页面
  • 更好的解决方案是我可以在传递
  • 的情况下加载我的节点的新角度页面



{
            var headers = {
                'User-Agent': 'Super Agent/0.0.1',
                'Content-Type': 'application/x-www-form-urlencoded'
            };
// Configure the request
            var api = result[1].data_api;
            var login_email = result[0].data_login_email;
            var options = {
                url: 'https://pi.pardot.com/api/prospect/version/4/do/read',
                method: 'POST',
                headers: headers,
                form: {
                    'email': login_email,
                    'user_key': userkey,
                    'api_key': api
                },
                json: true // Automatically stringifies the body to JSON
            };

// Start the request
            rp(options)
                .then(function (parsedBody) {
                    console.error(login_email, "Is a user, login pass!");
                    // $scope.FormLogin = true;
                })
                .catch(function (err) {
                    console.error("fail no such user");
                });
            console.error("Third done");
        }




1 个答案:

答案 0 :(得分:0)

更好的方法是从API发送响应代码,告诉Angular请求是否成功。

如果你正在使用快递,你可以这样做:

if (everythingOk) {
  res.status(200).send(successData)
} else {
  res.status(400).send()
}

并在您的角度请求中:

        rp(options)
                .then(function (parsedBody) {
                    if(parsedBody.statusCode == 200) {
                      console.error(login_email, "Is a user, login pass!");
                    } else {
                      console.error("fail no such user"); 
                      // $scope.FormLogin = true;
                    }
                })
                .catch(function (err) {
                    console.error("unknown error");
                });
            console.error("Third done");
相关问题