使用Angular结合Express(Node.js)时处理路由

时间:2016-01-01 19:18:44

标签: javascript angularjs node.js express routes

我在角度

中有以下配置
.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $routeProvider

        .when('/', {
            templateUrl: '../pages/main.html',
            controller: 'RMController',
            controllerAs: 'rm'
        })

        .when('/:user', {
            templateUrl: '../pages/emp-details.html'
        })

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

如果点击main.html中的某些内容,然后将我转到emp-details.html,这样就可以了。

但是,如果我明确地输入localhost:8080/1234emp-details.html和param),快递从未听说过这条路线。

处理这种关系的最佳方式是什么?

我的路线如下:

module.exports = function(app, schema) {

    //Finds all users
    app.get('/api/users', function(req, res){
        schema.getEmployees()

            .then(function(results) {
                res.json(results);
            }, function(err) {
                console.log(err);
                if (err) res.json(err);
            });
    });

    app.get('/api/users/:user', function(req, res) {
         schema.getSpecificEmployee(req.params.user)

            .then(function(results) {
                res.json(results);
            }, function(err) {
                console.log(err);
                if (err) res.json(err);
            });
    });

    //Our default path: index.html
    app.get('*', function(req, res){
       res.sendFile(path.join(__dirname + '/public/index.html'));
    });
}

1 个答案:

答案 0 :(得分:0)

尝试这样做:

    .when('/:user', {
        url: '/emp-detail',    //add this line
        templateUrl: '../pages/emp-details.html'
    })

现在,如果您执行localhost:8080/#/emp-detail,则应该会看到emp-details.html页面。 通过使用localhost:8080 /#/ xyz你应该能够访问你的路由。 希望这个有用!!!