2017-08-13 68 views
1

我正在制作一个网站和前端,我使用的是HTML。对于后端,我使用node/Express。节点/表达锚链接路由

在HTML中,我有一些锚定标记重定向不同的HTML页面。为了创建不同的路由,我在Express中使用了Router。

现在的问题是,当我通过节点运行我的网站,然后重定向不能按预期工作。

的index.html:

 <li><a href="index.html">Home</a></li> 
     <li><a href="publication.html">Publication</a></li> 
     <li><a href="team.htm">Team</a></li> 
     <li><a href="contact.html">Contact</a></li> 

ExpressJS:

index.js:

var express = require('express'); 
    var path = require('path'); 
    //router object 
var router = express.Router(); 

router.get('/', function (req, res) { 
    res.sendFile(path.join(__dirname, '..', '/public/html/index.html')); 
}); 

    module.exports = router; 

publication.js:

var express = require('express'); 
    var path = require('path'); 

    //router object 
    var router = express.Router(); 

    router.get('/publication', function(req, res){ 
    res.sendFile(path.join(__dirname, '..', '/public/html/publication.html')); 
    }); 

    module.exports = router; 

当我运行通过节点的网站并输入:

本地主机:3000 /出版物

然后我收到publication.html,当我键入

本地主机:3000

它打开的index.html在我的索引页面中,我有上面的锚标签。 现在,如果我点击我的任何锚标记,然后我越来越像“不能让publication.html”是一个错误的我要的是重定向到我的publication.js并调用

router.get('/publication') 

方法,然后打开the publication.html

任何人都可以指向正确的方向吗?

回答

1

此代码

<li><a href="index.html">Home</a></li> 
    <li><a href="publication.html">Publication</a></li> 
    <li><a href="team.htm">Team</a></li> 
    <li><a href="contact.html">Contact</a></li> 

会产生像http://localhost:3000/index.html的链接。现在你后端不知道这条路线,因为你定义了你的路线,如/publication等等。你必须把它修改成类似下面

<li><a href="/">Home</a></li> 
    <li><a href="publication">Publication</a></li> 
    <li><a href="team">Team</a></li> 
    <li><a href="contact">Contact</a></li> 

更多关于express routing

+0

谢谢!我工作了。我需要花更多时间在快递文件上。哈哈。 – jackysatpal

+0

只是一个正则表达式的正则表达式。如果我帮你,那么接受或upvote答案 –

+0

当然。你对模板引擎有什么想法吗?你会推荐哪一种Express?我可以将数据从数据库传递到模板引擎(如Jade或EJS)吗? – jackysatpal