使用 Node.js 和 Express 构建 RESTful API 服务器

简介: 【10月更文挑战第3天】使用 Node.js 和 Express 构建 RESTful API 服务器

使用 Node.js 和 Express 构建 RESTful API 服务器

Node.js 是一个基于 Chrome V8 JavaScript 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 编写服务器端的应用程序。Express 则是一个基于 Node.js 的 Web 应用框架,它简化了 Web 应用的开发过程。在本文中,我们将构建一个简单的 RESTful API 服务器,该服务器能够处理 CRUD 操作(创建、读取、更新、删除)。

1. 环境准备

首先,确保你的开发环境中已经安装了 Node.js。接下来,我们需要创建一个新的 Node.js 项目。

打开终端或命令提示符,执行以下命令来创建一个新的项目目录:

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

2. 安装依赖

我们需要安装 express 作为我们的 Web 框架,以及 body-parser 来解析请求体中的 JSON 数据。

npm install express body-parser

3. 创建服务器

接下来,我们将创建一个简单的 HTTP 服务器。在项目根目录下创建一个名为 server.js 的文件,并添加以下代码:

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

// 创建 Express 应用实例
const app = express();

// 使用 body-parser 中间件来解析 JSON 请求体
app.use(bodyParser.json());

// 设置监听端口
const PORT = process.env.PORT || 3000;

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

4. 设计数据模型

我们将使用一个简单的内存数组来模拟数据库操作。在 server.js 中添加一个模拟数据模型:

let todos = [
  {
    id: 1, title: '学习 Node.js', completed: false },
  {
    id: 2, title: '练习 Express', completed: true },
];

// 用于生成唯一 ID 的辅助函数
function generateId() {
   
  return Math.floor(Math.random() * 100000);
}

5. 实现 RESTful API

接下来,我们将为 CRUD 操作实现对应的 HTTP 路由。

GET 请求

首先,实现一个 GET 请求来获取所有的待办事项:

app.get('/todos', (req, res) => {
   
  res.status(200).json(todos);
});
POST 请求

接着,实现一个 POST 请求来添加新的待办事项:

app.post('/todos', (req, res) => {
   
  const newTodo = {
   
    id: generateId(),
    title: req.body.title,
    completed: false,
  };
  todos.push(newTodo);
  res.status(201).json(newTodo);
});
PUT 请求

实现一个 PUT 请求来更新现有的待办事项:

app.put('/todos/:id', (req, res) => {
   
  const id = parseInt(req.params.id, 10);
  const updatedTodo = req.body;
  const todoIndex = todos.findIndex(todo => todo.id === id);

  if (todoIndex !== -1) {
   
    todos[todoIndex] = {
    ...todos[todoIndex], ...updatedTodo };
    res.status(200).json(todos[todoIndex]);
  } else {
   
    res.status(404).send('Todo not found');
  }
});
DELETE 请求

最后,实现一个 DELETE 请求来删除特定的待办事项:

app.delete('/todos/:id', (req, res) => {
   
  const id = parseInt(req.params.id, 10);
  const todoIndex = todos.findIndex(todo => todo.id === id);

  if (todoIndex !== -1) {
   
    todos.splice(todoIndex, 1);
    res.status(204).send();
  } else {
   
    res.status(404).send('Todo not found');
  }
});

6. 测试 API

启动服务器:

node server.js

现在,你可以使用 Postman 或者 curl 等工具来测试这些 API。

例如,使用 curl 发送一个 POST 请求:

curl -X POST http://localhost:3000/todos -H "Content-Type: application/json" -d '{"title":"学习 Express"}'

7. 总结

通过这篇文章,我们成功地使用 Node.js 和 Express 构建了一个简单的 RESTful API 服务器,它能够处理基本的 CRUD 操作。这个例子展示了如何创建一个 HTTP 服务器,如何接收和发送 JSON 数据,以及如何使用中间件来处理请求体。


相关文章
|
11月前
|
运维 NoSQL Serverless
|
10月前
|
安全 Java API
使用 Java 构建强大的 REST API 的四个基本技巧
本文结合探险领域案例,分享Java构建REST API的四大核心策略:统一资源命名、版本控制与自动化文档、安全防护及标准化异常处理,助力开发者打造易用、可维护、安全可靠的稳健API服务。
567 116
|
机器学习/深度学习 JSON 监控
如何通过API技术提升电商客户忠诚度:构建智能化客户关系引擎
在电商竞争激烈的当下,客户忠诚度成为核心壁垒。通过API技术构建智能化客户关系系统,整合全渠道数据,实现个性化推荐与自动化运营,提升用户黏性与复购率。结合实时行为分析、差异化定价、积分系统等手段,打造高效忠诚度管理体系,助力企业实现长期增长。
|
监控 安全 数据挖掘
构建自定义电商数据分析API
在电商业务中,构建自定义数据分析API可实现销售、用户行为等指标的实时分析。本文介绍如何设计并搭建高效、可扩展的API,助力企业快速响应市场变化,提升决策效率。
|
9月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
3160 18
构建AI智能体:一、初识AI大模型与API调用
|
11月前
|
运维 NoSQL Serverless
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
|
10月前
|
监控 安全 API
构建坚不可摧的防线:全方位保障API接口数据安全
在数字化时代,API作为系统间数据沟通的桥梁,其安全性至关重要。本文系统解析API安全的四大基石:身份认证、授权管理、数据完整性与机密性,并深入探讨HTTPS加密、强认证机制、精细授权、数据保护及纵深防御等关键技术实践,帮助企业构建全面的API安全体系,防范数据泄露与攻击风险,保障数据传输安全与业务稳定运行。
|
9月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
10月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。