使用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);
它应该解决您的问题,因为它匹配更具体的路线之前,得到更一般的:)