NodeJS教程

HTTP 协议和 API 开发

Preview
  • Node.js HTTP 协议和 API 开发
  • HTTP 协议
  • http 模块
  • API 开发
  • 总结

Node.js HTTP 协议和 API 开发

Node.js 提供了一系列的模块,可以用于开发 Web 应用程序和服务。其中,http 模块是 Node.js 中最常用的模块之一。本文将介绍 HTTP 协议和 http 模块的基本使用,以及如何使用 http 模块开发 API。

HTTP 协议

HTTP(HyperText Transfer Protocol)是一种应用层协议,用于在 Web 服务器和客户端之间传输数据。HTTP 协议的主要特点包括:

  • 基于请求和响应模型:客户端向服务器发送请求,服务器返回响应。
  • 无状态:每个请求和响应之间是独立的,服务器不会记录客户端的状态信息。
  • 支持多种请求方法:常用的请求方法包括 GET、POST、PUT、DELETE 等。
  • 使用 URL 来定位资源:客户端使用 URL 来指定要访问的资源。

http 模块

http 模块是 Node.js 中的一个核心模块,用于创建 Web 服务器和客户端。使用 http 模块创建服务器时,需要先创建一个服务器对象,然后调用 listen() 方法开始监听指定的端口。

const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

server.listen(8080, () => {
  console.log('Server running on port 8080');
});

上面的代码创建了一个 HTTP 服务器,监听 8080 端口。当客户端向服务器发送请求时,服务器会返回 Hello, World!

API 开发

使用 http 模块可以轻松地开发 API。API(Application Programming Interface)是一组定义了应用程序之间如何通信的接口。在 Web 应用程序中,API 通常用于访问和操作服务器上的数据。

下面是一个简单的 API 示例,用于获取和添加用户信息:

const http = require('http');
const users = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];

const server = http.createServer((req, res) => {
  const { method, url } = req;

  if (method === 'GET' && url === '/users') {
    res.setHeader('Content-Type', 'application/json');
    res.end(JSON.stringify(users));
  } else if (method === 'POST' && url === '/users') {
    let body = '';
    req.on('data', (chunk) => {
      body += chunk.toString();
    });
    req.on('end', () => {
      const user = JSON.parse(body);
      users.push(user);
      res.setHeader('Content-Type', 'application/json');
      res.end(JSON.stringify(user));
    });
  } else {
    res.statusCode = 404;
    res.end('Not Found');
  }
});

server.listen(8080, () => {
  console.log('Server running on port 8080');
});

上面的代码创建了一个 API,用于获取和添加用户信息。当客户端向服务器发送 GET 请求,并且 URL 为 /users 时,服务器会返回所有用户信息。当客户端向服务器发送 POST 请求,并且 URL 为 /users 时,服务器会将请求体中的用户信息添加到用户列表中,并返回该用户信息。如果客户端发送的请求不是 GET 或 POST 请求,或者 URL 不为 /users,服务器会返回 404 Not Found。

总结

本文介绍了 HTTP 协议和 http 模块的基本使用,以及如何使用 http 模块开发 API。通过这些知识,可以轻松地创建 Web 应用程序和服务,并与客户端进行数据交互。