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

MAK*_*MAK 2 html javascript node.js

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

在我的应用程序中在本地服务器上调用 localhost:4000/ 后,我可以访问主页。在我的主页上有一个“联系我们”选项卡。当我点击它时,它应该重定向到 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);
Run Code Online (Sandbox Code Playgroud)

我的 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>
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!!!

Sam*_*age 5

您尚未设置 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);
});
Run Code Online (Sandbox Code Playgroud)

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

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);
    });
Run Code Online (Sandbox Code Playgroud)