如何在NodeJS中不使用Express JS创建API - 前端大师

作者:API传播员 · 2026-01-02 · 阅读时间:6分钟
本文详细讲解如何在不使用Express.js的情况下,通过Node.js内置模块创建API,包括GET和POST请求的实现,并使用Postman进行测试,帮助开发者深入理解Node.js工作原理。

简介

在开发 Node.js 应用程序时,Express.js 是一个非常流行的框架,因其简洁和高效而被广泛使用。然而,Express.js 本质上是对 Node.js 的封装,因此我们也可以直接使用 Node.js 的内置模块来创建 API。本文将详细讲解如何在不使用 Express.js 的情况下,通过 Node.js 创建一个简单的 API,包括 GET 和 POST 请求的实现,并使用 Postman 进行测试


步骤1:安装和验证 Node.js 及 Postman

在开始之前,请确保您的开发环境中已安装 Node.js 和 Postman。您可以通过以下步骤来验证:

  1. 打开终端或命令提示符,输入以下命令检查 Node.js 和 npm 的版本:

    node -v
    npm -v
  2. 如果需要更新 Node.js,请访问 Node.js 官方网站 下载最新版本。

  3. 安装 Postman,这是一个用于测试 API 的工具,您可以从 Postman 官方网站 下载。


步骤2:初始化项目

  1. 创建一个新的项目文件夹,并进入该文件夹:

    mkdir node-api-no-express
    cd node-api-no-express
  2. 初始化项目,生成 package.json 文件:

    npm init -y

    这将创建一个默认的 package.json 文件,用于管理项目的依赖和元信息。


步骤3:设置服务器

  1. 在项目根目录下创建一个名为 server.js 的文件。

  2. 使用 Node.js 的内置 http 模块创建服务器。以下是 server.js代码示例

    const http = require("http");
    
    const server = http.createServer((req, res) => {
       res.writeHead(200, { "Content-Type": "text/plain" });
       res.write("Hello World!");
       res.end();
    });
    
    server.listen(9000, () => {
       console.log("服务器正在端口 9000 上运行");
    });
  3. 启动服务器:

    node server.js

    此时,服务器已在端口 9000 上运行。


步骤4:使用 Postman 测试 API

  1. 打开 Postman,输入以下 URL:

    http://localhost:9000
  2. 点击发送按钮,您将看到服务器返回的响应内容为:

    Hello World!

步骤5:实现 POST 和 GET API

为了支持不同的 HTTP 方法(如 POST 和 GET),我们需要对 server.js 文件进行修改。

修改服务器代码

server.js 文件中,根据请求的 URL 和方法类型,添加相应的处理逻辑:

const http = require("http");

const server = http.createServer((req, res) => {
    const { method, url } = req;    if (method === "GET" && url === "/get-api") {
        getHandler(req, res);
    } else if (method === "POST" && url === "/post-api") {
        postHandler(req, res);
    } else {
        defaultHandler(req, res);
    }
});server.listen(9000, () => {
    console.log("服务器正在端口 9000 上运行");
});

实现 GET 请求处理

server.js 文件中添加以下代码,用于处理 GET 请求:

const getHandler = (req, res) => {
    const data = {
        name: "Frontend Guruji",
        category: "Technology",
        website: "frontendguruji.com",
    };

    res.writeHead(200, { "Content-Type": "application/json" });
    res.write(JSON.stringify({ message: "GET Successful", data }));
    res.end();
};

实现 POST 请求处理

对于 POST 请求,我们需要解析请求体中的数据。以下是 POST 请求处理的代码:

const postHandler = (req, res) => {
    let chunks = [];

    req.on("data", (chunk) => {
        chunks.push(chunk);
    });    req.on("end", () => {
        const data = Buffer.concat(chunks).toString();
        console.log("接收到的数据:", data);        res.writeHead(200, { "Content-Type": "application/json" });
        res.write(JSON.stringify({ message: "POST Successful", receivedData: data }));
        res.end();
    });
};

默认请求处理

当请求的 URL 或方法类型不匹配时,返回默认响应:

const defaultHandler = (req, res) => {
    res.writeHead(404, { "Content-Type": "application/json" });
    res.write(JSON.stringify({ message: API not found at ${req.url} }));
    res.end();
};

使用 Postman 测试 API

测试 GET 请求

  1. 在 Postman 中选择 GET 方法。

  2. 输入以下 URL:

    http://localhost:9000/get-api
  3. 点击发送按钮,您将收到以下响应:

    {
       "message": "GET Successful",
       "data": {
           "name": "Frontend Guruji",
           "category": "Technology",
           "website": "frontendguruji.com"
       }
    }

测试 POST 请求

  1. 在 Postman 中选择 POST 方法。

  2. 输入以下 URL:

    http://localhost:9000/post-api
  3. 在请求体中选择 raw,并设置为 JSON 格式,输入以下数据:

    {
       "key": "value"
    }
  4. 点击发送按钮,您将收到以下响应:

    {
       "message": "POST Successful",
       "receivedData": "{"key":"value"}"
    }

总结

通过本文的教程,我们学习了如何在不使用 Express.js 的情况下,直接使用 Node.js 的内置模块创建 API。我们实现了一个简单的服务器,并支持 GET 和 POST 请求,同时使用 Postman 对其进行了测试。这种方法虽然比使用框架稍显繁琐,但有助于我们深入理解 Node.js 的工作原理。

原文链接: https://frontendguruji.com/blog/how-to-create-api-in-nodejs-without-express-js/