Угловой маршрут не перехватывает URL при отображении URL с ServerSide (Nodejs)

Я новичок в веб-разработке Mean-stack. Я работаю над своим университетским проектом, который должен развиваться как одностраничное приложение на основе стека MEAN. У меня есть ссылки на все угловые ресурсы, CSS и другие ссылки в index.html. Логин и домашняя страница закодированы только внутри s. Проблема в том, что если аутентификация при входе прошла успешно, я хочу отобразить домашнюю страницу, используя угловую маршрутизацию, когда серверная сторона отвечает как URL Home {res.render('/home')}, но этот способ не работает. Но страница входа работает правильно. Любая помощь приветствуется.


Этот index.html--

   <link rel="stylesheet" href="css/bootstrap.min.css">
      <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
      <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
      <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
      <script src="../server/angModule.js"></script>
      <script src="../server/angularRoute.js"></script>
      <script src="js/controllers/loginController.js"></script>
      <script src="js/controllers/homeController.js"></script>
    </head>
    <body ng-app="Pharmacy">
        <div ng-view > </div>
    </body>


Это login.html

    <form action="/login" method="post">
        <div class="form-group">
            <label>Username</label>
            <input type="text" class="form-control" name="username">
        </div>
        <div class="form-group">
            <label>Password</label>
            <input type="password" class="form-control" name="password">
        </div>

        <button type="submit" class="btn btn-warning btn-lg">Login</button>
        <input type="checkbox" checked="checked" name="remember-me"> Remember me
    </form>


Это угловой модуль, маршрутизация и контроллеры

var app = angular.module('Pharmacy', ['ngRoute']);

app.config(function ($routeProvider) {

  $routeProvider.when('/', {
    templateUrl: '../views/login.html',
    controller: 'loginController'
  }).when('/home', {
    templateUrl: '../views/home.html',
    controller: 'homeController'
  }).when('/about', {
    templateUrl: '../views/about.html',
    controller: 'studentController'
  }).otherwise({
    redirectTo: "/"
  });
});

app.controller("loginController", function ($scope) {

    $scope.login = 'this is login';
});

app.controller("homeController", function ($scope) {

    $scope.message = 'This is home';

});


Это необходимые коды на стороне сервера;

var UH       = require('./modules/userHandaling');
module.exports = function(app) {

 app.get('/', function(req, res) {
  res.render('index');
 });
 app.get('/index', function(req, res) {
  res.render('index');
 });
 app.get('/login', function(req, res) {
  if (req.cookies.user == undefined || req.cookies.pass == undefined){
   res.render('index', { title: 'Hello - Please Login To Your Account' });
  }else{
   // attempt automatic login //
   UH.autoSignIn(req.cookies.user, req.cookies.pass, function(o){
    if (o != null){
     req.session.user = o;
     res.redirect('/home');
    } else{
     res.render('index', { title: 'Hello - Please Login To Your Account' });
    }
   });
  }
  res.render('index');
 });
 app.post('/login', function(req, res){
  UH.manualSignIn(req.body['username'], req.body['password'], function(error, output){
   if (!output){
    res.status(400).send(error);
   } else {
    req.session.user = output;
    if (req.body['remember-me'] == 'on'){
     res.cookie('username', output.username, { maxAge: 900000 });
     res.cookie('password', output.password, { maxAge: 900000 });
    }
   res.render('/home');
   }
  });
 });


Также я загрузил свой проект на Github: https://github.com/SarasaGunawardhana/StackOverFlow-Question

Спасибо друзья.

1 ответ

+ Изменить res.render('/home'); в res.render('home');

Вы должны визуализировать свой шаблон на стороне клиента, как это,

res.render('home');
Другие вопросы по тегам