2015-07-01 1 views
4

привет Я новичок в узел и я строю простое приложение стека MEAN, чтобы уменьшить код я посылаю передок файлы как этотузел переадресации не работает на угловом

app.use(express.static(path.join(__dirname, 'public'))); 

я также построить простую промежуточную среду для простой аутентификации

requireLogin = function (req, res, next) { 
    if (!req.user) { 
     console.log('redirecting :)'); 
     res.redirect('/'); 
    } else { 
     next(); 
    } 
}; 

app.use('/rooms',requireLogin); 

Я пытаюсь использовать это промежуточное программное обеспечение на маршрутах, выполненных в угловом режиме. , но это не работает, когда я просматриваю свое угловое приложение (оно работает, когда я прямо поместил URL-адрес в адресную строку). Я также удалил/# /, который добавлен угловым.

$locationProvider.html5Mode({ 
    enabled: true, 
    requireBase: false 
}); 

Я использую ui-router для маршрутизации.

ответ

3

Вы должны сделать перенаправление на угловым, но не на приложение node.js. Например,

requireLogin = function (req, res, next) { 
    if (!req.user) { 
     console.log('User does not exist.'); 
     return false; 
     // 
    } else { 
     next(); 
    } 
}; 

app.use('/rooms', requireLogin); 

Тогда /rooms не сможет получить доступ, если нет пользователя, вошедшего в систему.

Бэкэнд-маршруты (экспресс-варианты): те маршруты, которые конечный пользователь не должен знать или даже использовать (ваше угловое приложение будет использовать их для связи с бэкэнд для работы с его данными, но конечный пользователь не будет помещать их непосредственно в браузер)).

Маршрутные маршруты (угловые): маршруты, которые отображаются на разных страницах вашего приложения, и из-за этого конечные пользователи могут использовать их для доступа к некоторым частям вашего приложения напрямую.

Прочитать Express.js or angular for handling routes in a MEAN application? для получения более подробной информации.

+0

У меня возникла аналогичная проблема, когда 'res.redirect ('/')' работал неправильно. Я читал вместо этого, чтобы создать маршрут, чтобы позволить угловой ручке. Тем не менее, есть небольшая задержка, когда пользователь загружает страницу, прежде чем пользователь будет перенаправлен обратно в индекс. Есть ли способ исправить это отставание от асинхронных операций? IE, я отправляю свой обратный вызов из моего контроллера, который использует '$ location.url ('/')', если ответ с сервера «false», при проверке на 'req.session.userID' - любые идеи? – natureminded

 Смежные вопросы

  • Нет связанных вопросов^_^