繁体   English   中英

使用 Nodejs 运行 html 文件时出现问题

[英]Having an issue while running html file using Nodejs

我第一次在您的计算机上观看了运行 node.js 服务器的教程。 幸运的是,我已经创建了服务器,但是当我试图在完全相同的服务器上显示 html 内容时遇到了问题。 这是我的 index.js 文件代码 -

const http = require("http");
const fs = require("fs");
const port = 8020;

const server = http.createServer((req, res) => {
  res.writeHead(200, { "Contet-type": "text/html" });
  fs.readFile("index.html", (err, data) => {
    if (err) {
      res.writeHead(404);
      res.write("Error file not found");
    } else {
      res.writeHead(data);
    }
    res.end();
  });
});

server.listen(port, function (err) {
  if (err) {
    console.log("Something went wrong");
  } else {
    console.log("server listening on port " + port);
  }
});

这就是我在终端机上得到的——

PS C:\Users\Dell\OneDrive\Desktop\New folder> node index.js
server listening on port 8020
node:_http_server:343
    throw new ERR_HTTP_INVALID_STATUS_CODE(originalStatusCode);
    ^

RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>This is my first nodeJs project</h1>
</body>
</html>
    at new NodeError (node:internal/errors:393:5)
    at ServerResponse.writeHead (node:_http_server:343:11)
    at C:\Users\Dell\OneDrive\Desktop\New folder\index.js:12:11
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  code: 'ERR_HTTP_INVALID_STATUS_CODE'
}

Node.js v18.12.1
PS C:\Users\Dell\OneDrive\Desktop\New folder> 

甚至本地主机(在本例中为 8020)也没有在浏览器上运行。

我只想知道我完全不知道的错误或我需要做的事情才能获得我想要的 output。

您正在将 HTML 写入响应的 header:

res.writeHead(data);

你要:

res.end(data);

要么

res.write(data);
res.end();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM