使用 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 应用框架,常被认为是构建 API 或 Web 应用的标准库之一。在本文中,我们将使用 Node.js 和 Express 构建一个简单的 RESTful API,用于管理一个书籍列表。

1. 环境准备

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

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

mkdir book-api
cd book-api
npm init -y

2. 安装必要的包

我们需要安装 Express 和一些其他的 npm 包来帮助我们构建 API。

npm install express body-parser cors

body-parser 用于解析请求体,cors 用于处理跨域资源共享(CORS)问题。

3. 创建 API

创建一个名为 server.js 的文件,这是我们的主应用程序文件。

server.js 文件内容:
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');

const app = express();
app.use(bodyParser.json());
app.use(cors());

let books = [
  {
    id: 1, title: 'Node.js入门', author: '张三' },
  {
    id: 2, title: 'Express实战', author: '李四' },
];

// 获取所有书籍
app.get('/api/books', (req, res) => {
   
  res.json(books);
});

// 添加书籍
app.post('/api/books', (req, res) => {
   
  const book = req.body;
  book.id = books.length + 1;
  books.push(book);
  res.status(201).json(book);
});

// 删除书籍
app.delete('/api/books/:id', (req, res) => {
   
  const id = parseInt(req.params.id);
  books = books.filter(book => book.id !== id);
  res.status(204).send();
});

// 更新书籍信息
app.put('/api/books/:id', (req, res) => {
   
  const id = parseInt(req.params.id);
  const updatedBook = req.body;
  books = books.map(book => (book.id === id ? {
    ...book, ...updatedBook } : book));
  res.json(books.find(book => book.id === id));
});

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

4. 测试 API

现在我们可以启动我们的服务器,并使用 Postman 或其他 HTTP 客户端工具来测试我们的 API。

启动服务器:

node server.js

在浏览器中访问 http://localhost:3000/api/books,你应该可以看到 JSON 格式的书籍列表。

5. 使用 Postman 测试 API

安装并打开 Postman,创建一个新的请求:

  • GET 请求到 http://localhost:3000/api/books,应该返回所有的书籍。
  • POST 请求到 http://localhost:3000/api/books,发送一个 JSON 格式的请求体,例如 { "title": "JavaScript高级程序设计", "author": "高程" },应该返回新添加的书籍。
  • DELETE 请求到 http://localhost:3000/api/books/2,应该返回一个空响应体,表示书籍已被成功删除。
  • PUT 请求到 http://localhost:3000/api/books/1,发送一个 JSON 格式的请求体,例如 { "title": "Node.js实战" },应该返回更新后的书籍。

以上就是一个简单的 RESTful API 的实现。在这个例子中,我们没有使用数据库来持久化数据,而是将数据存储在一个内存数组中。在实际应用中,你可能需要连接到一个数据库,如 MongoDB 或 MySQL,并使用 ORM 或 ODM 如 Sequelize 或 Mongoose 来处理数据持久化。

通过这个例子,你可以了解到如何使用 Node.js 和 Express 来快速构建一个功能完善的 API。希望这篇教程对你有所帮助,如果有任何问题或建议,请随时留言。


相关文章
|
9月前
|
JavaScript 前端开发 物联网
JavaScript:构建动态世界的引擎
JavaScript:构建动态世界的引擎
|
9月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态网络的引擎
JavaScript:构建动态网络的引擎
|
10月前
|
运维 NoSQL Serverless
|
9月前
|
安全 Java API
使用 Java 构建强大的 REST API 的四个基本技巧
本文结合探险领域案例,分享Java构建REST API的四大核心策略:统一资源命名、版本控制与自动化文档、安全防护及标准化异常处理,助力开发者打造易用、可维护、安全可靠的稳健API服务。
527 116
|
9月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
11月前
|
机器学习/深度学习 JSON 监控
如何通过API技术提升电商客户忠诚度:构建智能化客户关系引擎
在电商竞争激烈的当下,客户忠诚度成为核心壁垒。通过API技术构建智能化客户关系系统,整合全渠道数据,实现个性化推荐与自动化运营,提升用户黏性与复购率。结合实时行为分析、差异化定价、积分系统等手段,打造高效忠诚度管理体系,助力企业实现长期增长。
|
8月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
2886 18
构建AI智能体:一、初识AI大模型与API调用
|
11月前
|
监控 安全 数据挖掘
构建自定义电商数据分析API
在电商业务中,构建自定义数据分析API可实现销售、用户行为等指标的实时分析。本文介绍如何设计并搭建高效、可扩展的API,助力企业快速响应市场变化,提升决策效率。
|
10月前
|
运维 NoSQL Serverless
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
在轻休闲游戏流量波动大、生命周期短的背景下,传统架构难以应对成本与扩展挑战。本文介绍了基于阿里云函数计算 FC 和 Redis 构建的新一代服务器架构,实现弹性伸缩、成本优化与高效运维,助力轻休闲游戏快速迭代与稳定运营,提升开发效率并降低运维复杂度。
《第四纪元》玩得轻松,构建也轻松 | 阿里云云原生 API 网关、函数计算助力 IGame 快速构建轻休闲游戏
|
9月前
|
监控 安全 API
构建坚不可摧的防线:全方位保障API接口数据安全
在数字化时代,API作为系统间数据沟通的桥梁,其安全性至关重要。本文系统解析API安全的四大基石:身份认证、授权管理、数据完整性与机密性,并深入探讨HTTPS加密、强认证机制、精细授权、数据保护及纵深防御等关键技术实践,帮助企业构建全面的API安全体系,防范数据泄露与攻击风险,保障数据传输安全与业务稳定运行。