在Node.js中的HTML页面之间redirect

我是Node.js的新手,我正在使用Node.js,HTML,CSS,JSdevise一个基本的网站。

在我的应用程序在本地服务器上调用localhost:4000 /之后,我能够获得主页。 在我的主页我有一个contactus标签。 当我点击它应该redirect到contactus.html页面。 但是,当我运行它在我的服务器上显示无法获取/contactus.html。

这是我的服务器:

var fs=require('fs'); var express=require('express'); var app=express(); app.use(express.static(__dirname + '/static')); app.get('/', function(req,res) { data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/home.html', function (err, data) { res.setHeader('Content-Type', 'text/html'); res.send(data); }); }); app.listen(4000); 

和我的Html页面是:

 <!DOCTYPE html> <html> <head> <script> function contactus() { document.location="contactus.html"; } </script> </head> <body> <div class="pos_right"> <ul class="div"> <li><a href="#" onclick="contactus()">Contact</a></li> </ul> </div> </body> </html> 

这是我的目录结构: 在这里输入图像描述

提前致谢!!!

您尚未设置contactus.html的路由。 为此添加另一个获取条目。

 app.get('/contactus.html', function(req,res) { data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/contactus.html', function (err, data) { res.setHeader('Content-Type', 'text/html'); res.send(data); }); 

如果你想dynamic设置路由。 您可以通过以下方式设置路线。 然后,您不必为每个路线添加多个条目。 但要小心安全性,因为用户可以访问目录中的任何文件。

 app.get('/*', function(req,res) { data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/' + req.url, function (err, data) { res.setHeader('Content-Type', 'text/html'); res.send(data); }); 

HTML Firstone,你需要在你的页面添加链接:

 <li><a href="contactus.html" >Contact</a></li> 

replace这一行:

 <a href="#" onclick="contactus()">Contact</a></li> 

你的服务器

 app.get('/contactus.html', function(req,res) { data= fs.readFile('/home/swift-03/WebstormProjects/website/static/HTML/contactus.html', function (err, data) { //Other information required... res.setHeader('Content-Type', 'text/html'); res.send(data); }); 

您需要在您的app.get请求中指定第一个参数(在本例中为contactus.html)