首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与后端的角度通信

与后端的角度通信
EN

Stack Overflow用户
提问于 2016-06-04 20:04:55
回答 1查看 1.2K关注 0票数 1

我正在尝试在angular中创建一个身份验证服务,以便注册/登录用户。

在注册新用户之后,我在接收对服务的响应时遇到了一些问题。

以下是流程:

将新用户传递给Auth-service的前端控制器:

代码语言:javascript
复制
vm.onSubmit = function () {
      Authentication
      .register(vm.credentials)  
        .then(function(){       
          $location.path('/');
        });
    };

身份验证服务register-function

代码语言:javascript
复制
register: function(user) {
          return $http.post('/api/register', user).success(function(data){
          console.log('authserviceDONE'); //I never get back here...
          });
        },

The api/register -route

代码语言:javascript
复制
app.post('/api/register', function(req, res) {
        User.register(new User({ username: req.body.username}), req.body.password, function(err,user) {
            if (err) {
                return res.json(err);
            }
            passport.authenticate('local')(req, res, function () {
                console.log(req.user); // User gets logged
            return req.user;
        });

        });
});

我希望在前端接收user-object,以便让他登录到应用程序,但Auth-service从未接收到任何内容。关于我可能会遗漏的地方有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-04 20:38:35

我不知道你的项目是如何组织的,所以我将向你展示什么对我有效。我通常有三个文件:app.js controllers.js services.js -这是非常标准的。

下面是一个示例:

app.js

代码语言:javascript
复制
angular.module('myApp', ['myApp.controllers', 'myApp.services'])
.config(function (...) { ...

controllers.js

代码语言:javascript
复制
angular.module('myApp.controllers', [])
.controller('myCtrl',function($scope, srvAccount, $log){

srvAccount.getaccount()
.then(
    function(response){
        $scope.account = response.data;
        $log.info(response.data);
    },
    function(rejection){
        $log.error("getaccount error");
        $log.log(rejection);
    }
);
...

最后是services.js

代码语言:javascript
复制
angular.module('myApp.services', [])
.factory('srvAccount', function ($http) {
return {
    getaccount: function () {
        return $http({
            method: 'GET',
            url: 'api/getaccount'
        });
    }
}
});

打开browser developer tools > console并使用AngularJS $log进行调试。有关$log的更多信息,请单击此处https://docs.angularjs.org/api/ng/service/$log

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37630024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档