#angularjs #node.js #express #ng-controller
#angularjs #node.js #выразить #ng-контроллер
Вопрос:
Я разработал страницу профиля, которая содержит несколько модулей, таких как, скажем: личная информация и друзья.
Каждый модуль представляет собой ng-контроллер, который выполняет вызовы базы данных, но я хотел бы иметь возможность передавать идентификатор пользователя, для которого отображается профиль, чтобы вызовы базы данных были динамическими и извлекали данные, относящиеся к этому пользователю.
Как я должен это делать?
Заранее спасибо,
Мануэль
* Уточнение * Я использую express.js который обрабатывает аутентификацию и управление сеансами (с паспортом). Как только пользователь входит в систему, он попадает на страницу «/ profile».
Я не особенно хотел обрабатывать маршрутизацию с нескольких сторон, поэтому я решил обрабатывать всю маршрутизацию на стороне узла. Итак, я создал маршруты для вызовов get и post.
Теперь, когда пользователь переходит в «/ profile», я бы хотел, Чтобы различные модули (личная информация, друзья и т. Д.) Обновлялись в зависимости от подключенного пользователя.
Мне удалось выполнить нединамический вызов :
app.controller('UserInfo', [
'$scope', '$http',
function($scope, $http) {
$http.get("/api/users/info/1")
.then(function(response) {
$scope.user = response.data.local;
});
}
]);
Но это не зависит от контекста. Итак, я хотел бы теперь создавать вызовы get таким же образом, но иметь возможность передавать идентификатор (или любой другой правильный способ) пользователя для восстановления его данных.
Есть ли у вас какие-либо рекомендации относительно того, как действовать дальше? Любая ссылка на учебные пособия о том, как справиться с этим в многостраничном приложении MEAN? Большинство документов, которые я нашел в Интернете, относятся к одностраничным приложениям и не отвечают моим потребностям. Спасибо!
Комментарии:
1. используйте сеансы на стороне сервера.
2. Вы можете использовать ngStorage для хранения данных, связанных с пользователем, в локальном хранилище, которое должно быть вызвано один раз. ПРИМЕЧАНИЕ: Не храните пароль в своем локальном хранилище. Например: если пользователь успешно вошел в систему, сохраните его в localstorage и удалите при выходе пользователя из системы.
3. Как ваш контроллер вызывает базу данных? Используете ли вы вызов Rest с $resource?
Ответ №1:
Если ваш пользовательский интерфейс обрабатывает, кто я, вы получите некоторое нарушение безопасности. Ваш сервер должен знать, кто подключен. (с помощью файла cookie или чего-то подобного).
Вот пример: https://blog.nodejitsu.com/sessions-and-cookies-in-node /
Комментарии:
1. На самом деле я даже не уверен в том, как я создаю приложение.
2. Прошу прощения за мой предыдущий комментарий, я случайно нажал enter… Я добавлю некоторую точность в свой вопрос
3. Тот же ответ, вам не нужно ничего передавать angular, поскольку ваш сервер может справиться с этим с помощью HTTP-заголовка
4. Спасибо, Стив, но я не вижу никаких угловых в вашей ссылке. Вы предлагаете мне получить идентификатор пользователя из файла cookie, хранящегося в заголовке HTTP? Правильно? Должен ли я использовать для этого Angular localStorage, как упоминал Маниш?