节点 JS 路由 URL 冲突
Node JS Routing URL Conflict
这段代码的每一段都单独工作,但放在一起时,文章部分(第三组)将不会加载。 我对编码相当陌生,所以我希望有人能为我指出正确的方向。 我认为这是因为执行了第一条路由,并且它永远不会命中第二条路由......但我不知道如何解决它。
// Adds "www." to all URLs
app.all('*', function(req, res, next) {
if (req.headers.host.match(/^www/) == null) {
res.redirect('http://www.' + req.headers.host + req.url);
} else {
next();
}
});
// Serves the .html file but displays without .html in the URL
app.get('*', function(req,res){
var pages = ['/now', '/home', '/itinerary','/exploreourroots','/contact','/credits'];
if (pages.indexOf(req.url.toLowerCase()) !== -1) {
res.sendFile(__dirname + '/public' + req.url + '.html');
};
});
// Loads Articles from the database on the home page
app.get('/home', function(req, res) {
var query = 'SELECT a.title,a.author,a.cover_photo,a.html_loc,a.date_published,c.name country_name FROM articles a INNER JOIN countries c ON c.id=a.country_id ORDER BY a.date_published desc;'
connection.query(query, function(err, rows, fields) {
var list = [];
for (var i = 0;i < rows.length; i++) {
list.push({html_loc: rows[i].html_loc,country_name: rows[i].country_name,cover_photo: rows[i].cover_photo,title: rows[i].title,author: toAuthorPhoto(rows[i].author),date_published: toArticleDate(rows[i].date_published)});
}
res.contentType('application/json');
res.send(list);
});
});
感谢您的帮助!
我不确定你有什么意图。
如果用户在浏览器中键入www.mydomain.com/home
.你想要返回静态html文件(home.html),这是由第二个路由器完成的。或者您想从db(第三条路线)提供文章?
如果要在 url /home
时从 db 提供文章,请替换第二和第三路由的顺序:
app.get('/home', function(req, res) { ... });
app.get('*', function(req,res){ ... });
如果您想在路由/home
时提供静态 HTML,并且还希望有可能提供文章,那么像以前一样替换订单并另外将路由器/home
更改为 /article
.然后,如果 url /article
,您将提供文章:
app.get('/article', function(req, res) { ... });
app.get('*', function(req,res){ ... });
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- Angular JS IE9 Hashbang url rewriting
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 直接下载文件,而不是从window.open(url)
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 通过js在新选项卡中有条件地打开url
- CKFinder 3为所选文件返回错误的URL
- 如何获取不属于我项目的上一页的URL
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在URL中传递JS对象
- 将纯文本URL转换为可单击链接
- Javascript html每点击一次就会更改url
- 以角度管理动态URL
- Mathias URL shortener
- 如何有效地将游戏数据存储在URL查询字符串中
- AJAX URL 追加与存储的 jQuery .data() 冲突
- 节点 JS 路由 URL 冲突
- 与Ember.js和Ecwid的URL片段(#)冲突
- HTML5 pushState冲突w/Angular UI路由器URL路由