2016-01-17 2 views
0

Я делаю образец приложения MEAN. У меня есть угловая маршрутизация, но когда я делаю любой запрос, он напрямую нажимает на сервер и дает мне Can not GET/movies.Угловая маршрутизация не работает с экспресс

Ниже приведен код на стороне сервера для обслуживания статических файлов.

//Serve html files 
app.get('/', function(req, res) { 
    res.sendFile(__dirname + '/index.html'); 
}); 

//Register all the client folder 
var client = __dirname + '/modules'; 
fs.readdir(client, function(err,files) { 
    files.map(function(file){ 
     app.use(express.static(path.join(__dirname, '/modules'+'/'+file+'/client'))); 
    }) 
}); 

//Serve js files 
app.use(express.static(path.join(__dirname, '/public'))); 

//Load the models 
app.models = require('./index'); 

//Load the routes 
var routes = require('./routes'); 
_.each(routes,function(controller,route){ 
    app.use(route,controller(app,route)); 
}); 

Внутри моей клиентской папки есть еще одна папка с именем «вид», где есть все мои шаблоны.

Ниже мой маршрутизации/URL фильма

angular.module('movies').config(['$stateProvider', 
    function ($stateProvider) { 
    // Movies state routing 
    $stateProvider 
     .state('movies.list', { 
     url: '/movies', 
     templateUrl: 'views/movie.html' 
     }) 
    } 
]); 
+0

Update вопрос с последним кодом –

+0

Вы jusing UI-маршрутизатор? http://angular-ui.github.io/ui-router/site/#/api/ui.router –

+0

Да Venkat Я использую ui-router. – Nitya

ответ

0

Добавить urlRouterProvider в конфиг и добавить контроллер в stateProvider.state:

myApp.config(function($stateProvider, $urlRouterProvider) { 
    // 
    // For any unmatched url, redirect to /state1 
    $urlRouterProvider.otherwise("/state1"); 
    // 
    // Now set up the states 
    $stateProvider 
    .state('state1.list', { 
     url: "/list", 
     templateUrl: "partials/state1.list.html", 
     controller: function($scope) { 
     $scope.items = ["A", "List", "Of", "Items"]; 
     } 
    }) 
}); 

Ссылка:
https://github.com/angular-ui/ui-router

+0

То, что я добавил. Все те же ошибки. Моя угловая маршрутизация вовсе не запускается. – Nitya

+0

Добавьте свой html-код, а также –

+0

Просто для тестирования в моем HTML-формате «Movie» есть. Когда URL-адрес изменяется на localhost: // 3000/Movie, я получаю Can not GET/movies, даже если он настроен в маршрутизации. – Nitya

0

Используя точку в ваше имя состояния .state('movies.list', { вы создаете вложенное состояние 'li st 'родительского состояния' фильмы '.

Если вы не хотите создавать вложенное состояние, удалите точку и назовите ее как «listMovies», и она должна работать.

Update

в вашей экспресс-конфигурации:

app.get('/*', function(req, res) { 
    res.sendFile(__dirname + '/index.html') 
}); 

и в Вашем угловом маршруту:

angular.module('movies').config(['$stateProvider', '$locationProvider', 
    function ($stateProvider, $locationProvider) { 
    // Movies state routing 
    $stateProvider 
     .state('movies', { 
     url: '/movies', 
     templateUrl: 'views/movie.html' 
     }); 
    $locationProvider.html5Mode(true); 
    } 
]); 
+0

Выполнено. Ошибка. – Nitya

+0

просто для уточнения, вы вызываете localhost: PORT/#/movies? – war1oc

+0

Нет, чтобы избежать этих префикс хэша. Я включил режим HTML5. Мой запрос идет как http: // localhost: 3000/movies. Мне интересно, почему угловая боковая маршрутизация не происходит. – Nitya

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