使用MEAN堆栈,Express js路由不能按预期工作

我是相当新的expression/mongoose,不能解决为什么我的路线不工作。 我正在使用MEAN堆栈。

我有一个全面的优惠路线“/优惠”,然后提供具体的优惠路线“/优惠/电视”和“/优惠/笔记本电脑”,但是当试图路由到特定的路线时,通过“/优惠”而不是我有书面。

我错过了什么?

谢谢!

我的代码:

的index.html

<a href="#!/offers/televisions">Television Offers</a> 

config.js

  when('/offers',{ templateUrl: 'views/offers/list.html' }). when('/offers/televisions',{ templateUrl: 'views/offers/list.html' }). when('/offers/laptops',{ templateUrl: 'views/offers/list.html' }) 

routes.js

  //Offer Routes var offers = require('../app/controllers/offers'); app.get('/offers', offers.all); app.get('/offers/televisions', offers.televisions); app.get('/offers/laptops', offers.laptops); 

offers.js

 /** * Find all offers */ exports.all = function(req, res){ console.log('all'); Offer.find({}, function(err, offers){ if (err) { res.render('error', { status: 500 }); } else { res.jsonp(offers); } }); }; /** * Find all television offers */ exports.televisions = function(req, res){ console.log('televisions'); Offer.find({type: 'television'}, function(err, offers){ if (err){ res.render('error', { status:500 }); }else{ console.log(offers); res.jsonp(offers); } }); }; 

把我的评论变成一个答案:

您似乎在angular度和expression式中都定义了相同的路由,所以当在angular度内命中路由时,请求将不会被发送到服务器。

您需要显式调用客户端代码中的服务器路由。

干杯

更具体的路线应该更具体。 在这种情况下,只要你的路由器匹配/offers ,它将返回结果,而不会得到下面更具体的选项。 如果你重新排列你的路由器,

  // Offer Routes var offers = require('../app/controllers/offers'); app.get('/offers/televisions', offers.televisions); app.get('/offers/laptops', offers.laptops); app.get('/offers', offers.all); 

它应该解决您的问题,因为它匹配更具体的路线之前,得到更一般的:)