使用 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。希望这篇教程对你有所帮助,如果有任何问题或建议,请随时留言。


相关文章
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
JSON 缓存 JavaScript
深入浅出:使用Node.js构建RESTful API
在这个数字时代,API已成为软件开发的基石之一。本文旨在引导初学者通过Node.js和Express框架快速搭建一个功能完备的RESTful API。我们将从零开始,逐步深入,不仅涉及代码编写,还包括设计原则、最佳实践及调试技巧。无论你是初探后端开发,还是希望扩展你的技术栈,这篇文章都将是你的理想指南。
|
JavaScript 前端开发 安全
盘点原生JS中目前最没用的几个功能API
在JavaScript的发展历程中,许多功能与API曾风光无限,但随着技术进步和语言演化,部分功能逐渐被淘汰或被更高效的替代方案取代。例如,`with`语句使代码作用域复杂、可读性差;`void`操作符功能冗余且影响可读性;`eval`函数存在严重安全风险和性能问题;`unescape`和`escape`函数已被`decodeURIComponent`和`encodeURIComponent`取代;`arguments`对象则被ES6的剩余参数语法替代。这些变化体现了JavaScript不断优化的趋势,开发者应紧跟技术步伐,学习新技能,适应新技术环境。
420 10
|
JSON JavaScript 前端开发
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将引导您步入Node.js的奇妙世界,通过实践操作,掌握如何使用这一强大的JavaScript运行时环境构建高效、可扩展的RESTful API。我们将一同探索Express框架的使用,学习如何设计API端点,处理数据请求,并实现身份验证机制,最终部署我们的成果到云服务器上。无论您是初学者还是有一定基础的开发者,这篇文章都将为您打开一扇通往后端开发深层知识的大门。
553 12
|
JavaScript NoSQL API
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发如同一座灯塔,指引着数据的海洋。本文将带你航行在Node.js的海域,探索如何从一张白纸到完成一个功能完备的RESTful API。我们将一起学习如何搭建开发环境、设计API结构、处理数据请求与响应,以及实现数据库交互。准备好了吗?启航吧!
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。