AngularJS $ http.get无法与express.js路由一起使用

时间:2018-10-18 08:00:53

标签: angularjs node.js

我正在使用AngularJS,Node.js,Express.js和MongoDB的应用程序。

AngularJS部分:

index.html:

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

    app.config(['$routeProvider','$locationProvider', 
        function($routeProvider,$locationProvider){
            $routeProvider
                .when('/', {
                    templateUrl : 'show.html',
                    controller  : 'EmployeeController'
                }).when('/nothing', {
                    templateUrl : 'main.html',
                    controller  : 'mainController'
                });
            $locationProvider.html5Mode(true);
    }]);

    app.controller('EmployeeController',function($scope,$http) {
        $scope.getEmployees = function() {
            console.log("working");

        $http.get("http:localhost:8080/employees").then(function(response) {
                console.log(response.data);
            });
        }
    });

Node.js部分:

server.js:

app.use(express.static(__dirname + '/angularjs/public'));
app.use(cors());
app.disable('etag');

app.use('/',function(req, res) {
    res.sendFile(__dirname + '/angularjs/public/index.html');
});

require('./app/routes')(app);

app.listen(8080);

routes.js:

var employee = require('./controller/EmployeeController');
module.exports = function(app) {
    app.route('/employees').get(employee.showEmployees);
};

EmployeeController.js:

exports.showEmployees = function(req, res) {
  employeeModel.find({}, function(err, data) {
    if (err)
      res.send(err);
     else
      res.send(data);
  });
};

快速路由效果很好。从MongoDB获取数据。问题出在AngularJS。

当我运行url“ localhost:8080 / employees”时,它将返回整个“ index.html”页面,作为AngularJS中$ http.get的响应。

有人可以帮助我哪里做错了吗?

0 个答案:

没有答案