使用 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 数据,以及如何使用中间件来处理请求体。


相关文章
|
3月前
|
XML JSON API
识别这些API接口定义(http,https,api,RPC,webservice,Restful api ,OpenAPI)
本内容介绍了API相关的术语分类,包括传输协议(HTTP/HTTPS)、接口风格(RESTful、WebService、RPC)及开放程度(API、OpenAPI),帮助理解各类API的特点与应用场景。
|
5月前
|
缓存 安全 API
RESTful与GraphQL:电商API接口设计的技术细节与适用场景
本文对比了RESTful与GraphQL这两种主流电商API接口设计方案。RESTful通过资源与HTTP方法定义操作,简单直观但可能引发过度或欠获取数据问题;GraphQL允许客户端精确指定所需字段,提高灵活性和传输效率,但面临深度查询攻击等安全挑战。从性能、灵活性、安全性及适用场景多维度分析,RESTful适合资源导向场景,GraphQL则适用于复杂数据需求。实际开发中需根据业务特点选择合适方案,或结合两者优势,以优化用户体验与系统性能。
|
5月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
4月前
|
缓存 边缘计算 前端开发
从业务需求到技术栈:电商API选型RESTful还是GraphQL?这5个维度帮你决策
在数字经济时代,电商平台的竞争已延伸至用户体验与系统效能。作为连接前后端及各类服务的核心,API接口的架构设计至关重要。本文对比RESTful与GraphQL两大主流方案,从电商场景出发,分析两者的技术特性、适用场景与选型逻辑,帮助开发者根据业务需求做出最优选择。
|
API
node.js入门 - 9.api:http
  node一个重要任务是用来创建web服务,接下来我们就学习与此相关的一个重要的api -- http。我们使用http.createServer()创建一个http服务的实例,用来处理来自客户的请求。
1024 0
|
4月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
989 11
|
9月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
8月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
6956 24
|
9月前
|
JavaScript 前端开发 数据可视化
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
501 2
【01】Cocos游戏开发引擎从0开发一款游戏-cocos环境搭建以及配置-Cocos Creator软件系统下载安装-node环境-优雅草卓伊凡
|
9月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!

热门文章

最新文章