2015-03-12 3 views
0

У меня есть система входа в свой веб-сайт, и я хочу, чтобы показать имя пользователя в веб-интерфейсе, используя AngularJS, но я не знаю, как передать user от NodeJSПоказать имя пользователя из Nodejs

app.get('/main', isLoggedIn, function(req, res){ 

    res.render('main.ejs', { 
     user : req.user 
    }); 

}); 
+0

Если у вас есть 'user' на переднем конце, следовательно,' req.user'. Тогда зачем вам отвечать на запрос 'req.user', у вас уже есть эта информация на вашем клиенте, нет? – Dayan

ответ

1

Из взгляда предоставленного фрагмента.

Ваши данные больше не являются user, которые хотите показать.

В ExpressJS:

req выступает за запрос, поступающий из клиента.

res означает Ответ, возвращаясь к Клиенту.

Хорошая статья о ExpressJS Here, она идет немного более подробно.

Если вы хотите связаться с DB, когда вы получите имя пользователя и пароль от клиента, отобразите полное имя пользователя. Тогда сделайте что-нибудь подобное.

Client (AngularJS)

app.service('SomeService', ['$http', function ($http,) { 

    this.loginUser = function(user, pass) { 
     var model = { 
      user: user, 
      pass: pass 
     }; 

     var promise = $http.post('/Account/Login', JSON.stringify(model)) 
      .then(function(response) { 
       return { 
        response.fullName 
       }; 

      }, function() { 
        //Error 
       }; 
      }); 

     return promise; 
    }; 

}]); 

На Сервере

app.get('/Account/Login', function(req, res) { 

    //Do Logic magic here.... 

    return res.json({ fullName: 'John Doe'}); 
}); 

Наконец ваш контроллер и HTML

После этого поездка туда и обратно, ваш JS Promise будет вернуться к оригиналу вызывающего абонента, и вы можете заполнить переменную $ scope, а затем отобразить ее, как хотите. Посмотрите:

app.controller("MyController", function('SomeService'){ 

$scope.fullName = ''; 

SomeService.loginUser ('userCool','password123') 
      .then(function (response) { 
       $scope.fullName = response.fullName; 
       }, function() { 
        //Some Error, Server did not respond... 
      }); 

}); 

HTML

<div ng-controller="MyController"> 
    <label ng-bind="fullName"></label> 
</div> 
0

Во-первых, установить его на стороне сервера:

app.get('/api/:paramID1/:paramID2', function(req, res) { 
    return res.json({ user: 'example' }); 
}); 

на стороне клиента вам нужно вызов Ajax для вызова службы, как:

$http.get("/api/1/abc").success(function(data) { 
    $scope.user = data; 
}); 
Смежные вопросы