2017-08-13 52 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