【发布时间】:2014-10-02 23:31:46
【问题描述】:
我试图让 AngularJS 路由与我的 NodeJS http 服务器一起工作。我有以下代码:
server.js:
app.set('port', 3000);
app.use(express.static(__dirname));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.get('/menuItems', menu.getMenuItems);
httpServer.listen(app.get('port'), function () {
console.log("Express server listening on port %s.", httpServer.address().port);
});
app.js:
var app = angular.module('app', ['ngRoute']);
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/cases', {
templateUrl: '../templates/cases.html'
}).
otherwise({
templateUrl: '../index.html'
});
}]);
但无论我尝试做什么,我都会得到“Cannot GET /cases”。
我可以在 node.js 中设置我的所有路由,但我不想这样做。
我做错了什么?
我看过这个帖子:How to use AngularJS routes with Express (Node.js) when a new page is requested? 但还是不明白:-(
【问题讨论】:
-
在您的前端,网址应该是
#/cases。然后它应该通过向后端请求/cases路由来填充。所以从技术上讲,你有 2 条路线。所以试试吧,localhost/#/cases。 -
你是对的!谢谢你。那么我想做的事情不可行吗?我只需要使用 url 中的井号标签吗?
-
好吧,你必须阅读为什么会这样。但这就是它的工作原理,因为您在网络服务器的
/上提供Angular。角度或任何前端框架的路由都是这样工作的。使用#将使用前端框架路由,而没有它将使用后端框架路由。
标签: node.js express angular-routing