Я хочу показать текущую пользовательскую информацию от nodejs до угловой (view).
Проблема в том, что я не знаю, как пройти и как получить идентификатор пользователя в узле и угловой.
Код:
Узел
router.get('/:id/api/data.json', function(req, res, next) {
console.log(req.params.id);
var userId = req.params.id;
User.findById({_id:userId}, function (err, doc) {
if (err) throw err
if (doc){
res.json({
doc: doc,
userID:req.params.id
});
}
});
});
Угловая:
app.controller('profileCtrl', function($scope, $http) {
$http.get("don't know how to get id from node").then(function (response) {
console.log(response.data);
});
});
Ваш маршрутизатор Node.js прослушивает url /:id/api/data.json
. Часть :id
этого означает, что Node.js ожидает там req.params.id
, который будет req.params.id
в файле Node.js.
Это означает, что вам действительно нужно передавать значение id
как часть URL-адреса. Таким образом, ваш URL-адрес будет выглядеть как /userid12345/api/data.json
.
В вашем Угловом файле укажите URL-адрес, на который вы собираетесь get
запрос. Это означает, что вам нужно знать идентификатор пользователя в вашем угловом файле, чтобы вы могли get
этот конкретный URL-адрес, например:
var userId = 'userid12345';
$http.get('/' + userId + '/api/data.json').then(function(response) {
console.log(response);
});
После того, как вы передадите userId
в качестве части URL- req.params.id
, Node может захватить его с помощью req.params.id
и вы можете сделать свой вызов db.
id
и userId
- это просто переменные, которые я составил. У вас есть фактический идентификатор пользователя в вашей базе данных? Если это так, используйте это, а затем установите для своей переменной в вашем Angular-файле идентификатор пользователя в вашей базе данных, то есть var userId = 'whatever user id is in your database';
console.log(response.data)
? Кроме того, вы пробовали пользователяres.jsonp()
вместоres.json()
? Остальное выглядит хорошо для меня.