Javascript 在Node.js中的HTML页面之间重定向

Javascript 在Node.js中的HTML页面之间重定向,javascript,html,node.js,Javascript,Html,Node.js,我是Node.js的新手,我正在使用Node.js、HTML、CSS、js设计一个基本网站 在我的应用程序中,在本地服务器上调用localhost:4000/后,我可以获得主页。在我的主页上有一个contactus标签。当我点击它时,它应该重定向到contactus.html页面。但是,当我在服务器上运行它时,它会显示Cannot GET/contactus.html 这是我的服务器: var fs=require('fs'); var express=require('express'); v

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

在我的应用程序中,在本地服务器上调用localhost:4000/后,我可以获得主页。在我的主页上有一个contactus标签。当我点击它时,它应该重定向到contactus.html页面。但是,当我在服务器上运行它时,它会显示Cannot GET/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设置路由。为此添加另一个get条目

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);
});
如果要动态设置路由。您可以按以下方式设置路线。然后,您不必为每个路由添加多个条目。但是要小心安全,因为用户可以访问目录中的任何文件

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);
    });

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

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);
});
如果要动态设置路由。您可以按以下方式设置路线。然后,您不必为每个路由添加多个条目。但是要小心安全,因为用户可以访问目录中的任何文件

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 首先,您需要在页面中添加链接:

<li><a href="contactus.html" >Contact</a></li>
您需要将specify作为app.get请求中的第一个参数,在本例中为contactus.html 首先,您需要在页面中添加链接:

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

您需要将specify作为应用程序中的第一个参数。在本例中,获取请求contactus.html

请尝试“否”,它仍然显示相同的错误。我必须通过Javascript来处理它。但是我不知道怎么处理。。问题是服务器无法访问contactus.html页面。感谢您的响应因为您使用了express,请在提出此类问题之前阅读express的API。app.useexpress.static'/static',_u_dirname+'/static';您的所有文件都在静态目录中,因此不必创建路由。@Paramore感谢您的回复…我得到了答案..我还需要为html页面添加路由..请尝试不,它仍然显示相同的错误。我必须通过Javascript来处理它。但是我不知道怎么处理。。问题是服务器无法访问contactus.html页面。感谢您的响应因为您使用了express,请在提出此类问题之前阅读express的API。app.useexpress.static'/static',_u_dirname+'/static';您的所有文件都在静态目录中,因此不必创建路由。@Paramore感谢您的回复…我得到了答案..我还需要为html页面添加路由..这正是我所需要的。谢谢:这正是我需要的。谢谢: