Node.js 能够显示所有的HTTP状态码吗

Node.js 能够显示所有的HTTP状态码吗

NodeJS 是一个运行时环境,用于在浏览器外部运行Javascript。它被广泛用于构建后端服务器,与前端如网站、移动应用程序等进行交互。在本文中,我们将检查能否在NodeJS中打印出所有的HTTP状态码。

为了理解这个问题,首先我们需要了解什么是HTTP状态码。

HTTP状态码: 这里我们指的是响应状态码。这些码告诉我们一个HTTP请求是否成功完成。让我们来看看这些码的五个类别:

  1. 信息性响应: 码为100至199
  2. 成功响应: 码为200至299
  3. 重定向消息: 码为300至399
  4. 客户端错误响应: 码为400至499
  5. 服务器错误响应: 码为500至599

以上的最简单示例是状态码404,表示“页面未找到”。这是一个非常常见的错误响应,大多数人应该都遇到过。

现在回到我们的问题上,我们能够在NodeJS中打印出以上所有的HTTP状态码吗? 答案是否。NodeJS不提供打印所有以上状态码的工具。 但是我们仍然可以打印出很多状态码。让我们来看看它们。

打开命令提示符或shell,并输入以下命令:

node
JavaScript

您应该看到以下输出,表示您现在在节点环境中。

Welcome to Node.js v16.14.0.
Type ".help" for more information.
>
JavaScript

现在,我们输入命令:

http.STATUS_CODES
JavaScript

控制台输出:

{
  '100': 'Continue',
  '101': 'Switching Protocols',
  '102': 'Processing',
  '103': 'Early Hints',
  '200': 'OK',
  '201': 'Created',
  '202': 'Accepted',
  '203': 'Non-Authoritative Information',
  '204': 'No Content',
  ...
  '505': 'HTTP Version Not Supported',
  '506': 'Variant Also Negotiates',
  '507': 'Insufficient Storage',
  '508': 'Loop Detected',
  '509': 'Bandwidth Limit Exceeded',
  '510': 'Not Extended',
  '511': 'Network Authentication Required'
}
JavaScript

正如您所能看到的,我们没有所有的清单,但仍然有很多HTTP状态码。让我们通过一个示例来了解 200 状态码的使用情况。

项目结构:

Node.js 能够显示所有的HTTP状态码吗

我们需要在本教程中使用Express(一种Node.js的Web框架)。因此,在同一目录下,打开命令提示符并输入以下命令:

npm install express
JavaScript

在下面的示例中,我们在端口5000上运行我们的服务器,并使用express.js处理get请求。如果请求成功完成,状态代码将发送给客户端,并在服务器端打印响应状态。

index.js

const express = require('express'); 
const app = express(); 
const port = 5000; 
  
app.get('/', (req, res) => { 
    res.status(200).send('Status code of 200!'); 
    console.log(res.status(200)); 
}) 
  
app.listen(port, () => { 
    console.log(`Server is running at the port: ${port}`); 
})
JavaScript

现在打开命令提示符并输入:

node index.js
JavaScript

服务器正在运行中:

Node.js 能够显示所有的HTTP状态码吗

现在,打开你的浏览器,然后在URL中输入: http://localhost:5000/ 。你的浏览器将显示一个网页,上面显示 ‘Status code of 200!’

Node.js 能够显示所有的HTTP状态码吗

但这还不是全部。现在看看你的命令提示符。你会看到很多东西。不用担心,只需向下滚动到输出的末尾,你会看到类似这样的内容 –

Node.js 能够显示所有的HTTP状态码吗

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册