我正在使用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的响应。
有人可以帮助我哪里做错了吗?