在现代Web开发中,构建RESTful API是一个常见且重要的任务,它允许不同的客户端如网页、移动应用或其他服务器以标准化的方式与你的服务通信。Node.js因其非阻塞IO特性和轻量级,成为快速构建高效API的首选环境。本文将指导你如何使用Express框架和ES8的async/await特性来创建一个REST API。

一、准备工作

在开始之前,请确保你已经安装了Node.js和npm。然后,我们需要创建一个新的项目目录,并初始化一个新的Node.js项目:

mkdir express-api
cd express-api
npm init -y

接下来,安装Express以及其他将会用到的库:

npm install express body-parser cors
  • express:一个快速、未加意见、极简的web框架。
  • body-parser:用于处理JSON、Raw、Text和URL编码的数据。
  • cors:用于启用CORS(跨源资源共享)。

二、创建您的第一个Express服务器

创建一个名为app.js的文件,并添加以下代码来设置一个基本的Express服务器。

const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');

const app = express();
const port = process.env.PORT || 3000;

// 中间件
app.use(bodyParser.json());
app.use(cors());

// 基本路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

// 启动服务器
app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

通过运行node app.js,你的服务器将启动,并监听3000端口。

三、构建RESTful API

假设我们要创建一个用户管理系统的API,我们需要实现增加、查询、更新和删除用户数据的接口。

1. 定义用户数据

在真实的应用中,你可能会使用数据库来存储数据。为了简化,我们这里使用一个JavaScript数组模拟:

let users = [
  { id: 1, name: 'Alice', age: 25 },
  { id: 2, name: 'Bob', age: 28 },
  { id: 3, name: 'Charlie', age: 22 }
];

2. 实现接口

接下来,我们将添加几个路由来处理CRUD操作(创建、读取、更新、删除)。

创建用户

app.post('/users', async (req, res) => {
  const user = req.body;
  user.id = users.length + 1;
  users.push(user);
  res.status(201).send(user);
});

获取所有用户

app.get('/users', async (req, res) => {
  res.status(200).send(users);
});

更新用户

app.put('/users/:id', async (req, res) => {
  const { id } = req.params;
  const { name, age } = req.body;
  
  const user = users.find(u => u.id === parseInt(id));
  if (user) {
    user.name = name;
    user.age = age;
    res.status(200).send(user);
  } else {
    res.status(404).send({ message: 'User not found' });
  }
});

删除用户

app.delete('/users/:id', async (req, res) => {
  const { id } = req.params;
  
  users = users.filter(u => u.id !== parseInt(id));
  res.status(204).send();
});

四、测试API

现在,你的RESTful API已经完成了。你可以使用Postman或任何其他HTTP客户端工具来测试你的API。尝试发送GET、POST、PUT、DELETE请求到你的服务器,并观察响应。

五、总结

通过本文的指导,你已经学会了如何使用Express和async/await来创建一个简单的REST API。虽然我们在这里没有使用数据库,但你可以根据需要轻松地将其集成进来。Node.js和Express为构建现代Web应用提供了一个强大且灵活的平台,希望你能在此基础上继续探索和学习。

艾林博客 - 技术分享、开发经验与AI探索的个人技术博客
艾林博客 - 技术分享、开发经验与AI探索的个人技术博客

延伸阅读:

现代接口安全实战:<span class="text-primary">从加密到防滥用的全栈策略</span> 技术随笔
现代接口安全实战:从加密到防滥用的全栈策略

很多人以为接口加了个 API-Key 或 JWT 就算“安全”。其实现代 API 安全从来不靠某一种“工具”,而是靠传输加密、认证设计、权限隔离、限速防刷、异常监控、日志审计等多个防线共同构成闭环。这一篇文章将为你系统梳理接口安全的全栈策略,避免你在业务关键点裸奔不自知。

资源 Web 安全 优化 Http 后端

Valencio

/

2025-07-04

为什么平台都不管你 key 泄露? 技术随笔
为什么平台都不管你 key 泄露?

很多开发者疑惑:如果我的 API-Key 被盗了,为什么平台方(比如腾讯云、OpenAI)都不报警、不封禁?他们难道不负责吗?本篇文章将深入解析开放平台认证背后的“边界责任模型”,帮助你厘清平台方与调用方之间的安全分工与责任归属,避免你为他人的低级错误背锅。

优化 安全 Web 后端

Valencio

/

2025-07-04

<span class="text-primary">OpenAPI规范</span>与标准化响应实践 架构设计
OpenAPI规范与标准化响应实践

本文系统阐述了如何通过OpenAPI规范设计RESTful接口,详细解析API Key、OAuth 2.0、JWT三大认证方案的核心逻辑,并给出标准化的成功响应模板与错误码规范体系。为构建高可用、易维护的开放平台提供完整的设计方法论。

扩展 框架 Web 安全 Http

Valencio

/

2025-03-15