首页 文章

如何在nodeJS服务器上放置2个html页面

提问于
浏览
-1

我正在学习NodeJS和Javascript,我想构建一个运行2个HTML页面的简单服务器,一个用 localhost:3000/index 打开,另一个用 localhost:3000/about 打开 .

我知道如何让我的服务器显示一个HTML页面,但我很难添加另一个 . 我尝试了 if 语句,但它不起作用 . 这是我的代码:

let http = require("http");
let fs = require("fs");
let port = 3000;
let url = require("url");

let server = http.createServer((request, response) => {
  if (page == "/index") {
    fs.readFile("index.html", (err, data) => {
      if (err) {
        response.writeHead(404);
        response.end("This file doesn't exist");
      } else {
        response.writeHead(200, {
          "content-type": "text/html; charset=utf-8"
        });
      }
    });
  } else if (page == "/about") {
    fs.readFile("about.html", (err, data) => {
      if (err) {
        response.writeHead(404);
        response.end("This file doesn't exist");
      } else {
        response.writeHead(200, {
          "content-type": "text/html; charset=utf-8"
        });
      }
    });
  }

  response.end(data);
});

server.listen(port);

非常感谢您给我的帮助 . 美好的一天,

2 回答

  • 0

    而不是未定义的 page 变量,您应该使用 request.url 并进行比较 .

    request.url 是没有服务器,协议或端口的完整URL .

  • 0

    您可以将您的页面放在公共文件夹上并提供服务,您不必为每个页面硬编码 . 用这种方式你的代码看起来更干净 . 在下面的示例中,假设 public_html 是您的htlm页面所在的文件夹

    var express = require("express");
    var app = express();
    app.set("port",process.env.PORT||3000)
    var server = app.listen(app.get("port"),()=>{
      console.log("Listening on PORT: "+ app.get("port"))
    });
    app.use("/",express.static('public_html'))//you put here your htlm pages
    

相关问题