Node Js и Angular Js как отправить запрос с сервера клиенту

Я работаю над учебником для node js и angular. Я новичок в angular. Проблема, с которой я столкнулся. Вы можете легко перемещаться по сайту через клиентскую (угловую) панель навигации, но если вы введете URL-адрес в браузере, это станет проблемой, потому что node не знает URL-адрес запроса. У меня простой вопрос. Как отправить запрос сервера узла в angular?

Обратите внимание, что я пытался предотвратить перехват всех app.get ('*'). Это приводит к сбою сайта. Не знаю почему. Так что иметь два маршрута - мое решение

вот что я ищу

app.get('/admin/users',function(req,res){
  //This is node. There is already a angular controller that handles this
  //How do I send to angular
  res.send('../../app/public/admin/user-list');//this does not by the way.???
});

Угловой маршрут, который отлично работает при навигации по панели навигации

$routeProvider.when('/admin/accounts', {
  templateUrl: '/partials/admin/user-list',
  controller: 'mvUserListCtrl', resolve:routeRoleChecks.admin
})

person user516883    schedule 30.12.2015    source источник
comment
Получите доступ к ответу ../../app/public/admin/user-list в вашем $http обратном вызове   -  person Daniel Lizik    schedule 30.12.2015
comment
Приложите, пожалуйста, еще код .. А какой роутер Angular вы используете? (ui-роутер?)   -  person Marwen Trabelsi    schedule 30.12.2015
comment
@Daniel_L, можете ли вы дать мне пример на стороне узла, как это выполняется? Я не совсем понимаю, что вы имеете в виду. Спасибо   -  person user516883    schedule 30.12.2015
comment
@SmartyTwiti только что добавил угловой маршрут.   -  person user516883    schedule 30.12.2015
comment
ваш templateUrl не ссылается на html-файл. Я думаю, вы могли бы перефразировать свой вопрос, поскольку пытаетесь сделать что-то совершенно другое.   -  person Daniel Lizik    schedule 30.12.2015
comment
@Daniel_L Я использую Jade, поэтому нет ссылки на html. Мне нужен back end ref, потому что, если вы введете URL-адрес, он не будет работать, потому что сервер не знает об этом. Мне нужен сервер, чтобы каким-то образом передать это угловому. Может я не правильно задаю вопрос. Мне просто нужно, чтобы сайт работал нормально, если вы используете навигацию или вводите URL-адрес. Ввод его не работает, потому что node.js ничего не знает о маршруте с угловой обработкой.   -  person user516883    schedule 30.12.2015
comment
посмотрите на этот stackoverflow.com/questions/18746063/   -  person Daniel Lizik    schedule 30.12.2015
comment
@Daniel_L У меня уже есть что-то подобное, но я не уверен, как это соотносится с моей проблемой app.get ('/ partials / *', function (req, res) {// использовать для получения и рендеринга частей Angular. Res.render ('../../public/app/' + req.params [0]);});   -  person user516883    schedule 30.12.2015
comment
это потому, что маршруты angular не обязательно коррелируют с маршрутами, которые вы определяете в экспрессе. в angular /partials/foobar не localhost:8000/partials/foobar, это localhost:8000#partials/foobar. express не получает запрос GET, потому что вы не активируете правильный маршрут.   -  person Daniel Lizik    schedule 30.12.2015


Ответы (1)


Создайте ресурсы с помощью app.get (base_url) в node.js и сделайте ресурсы доступными в одном месте сейчас, когда вы нажимаете ресурсы из angular с помощью http, как показано ниже

return {
        getServiceData: function () {
            $rootScope.loading = true;
            var req = {
                method: 'GET',
                url: base_url+'patients'
            };

            return $http(req).then(function (result) {
                // alert("data in service = " + JSON.stringify(result.data));
                return result.data;
            });
        }

Я думаю это было бы полезно

person Dhana    schedule 30.12.2015