使用 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实战" },应该返回更新后的书籍。
相关推荐
糖拌西瓜皮2 小时前
Java开发者视角:深入理解Node.js异步编程模型
java·后端·node.js
一线大码3 小时前
Smart-Doc 的简单使用
java·后端·restful
智通21 小时前
Node.js事件循环核心机制
node.js
摇滚侠1 天前
SpringMVC 入门到实战 RESTFul 49-55
java·开发语言·后端·spring·intellij-idea·restful
初圣魔门首席弟子1 天前
Node.js 详细介绍(知识库版)
windows·qt·node.js·知识库
糖拌西瓜皮1 天前
Java 开发者如何快速上手 Node.js:一份从入门到进阶的学习路线
node.js
yspwf1 天前
NestJS 配置管理完整方案
后端·架构·node.js
网络点点滴1 天前
Node.js事件驱动架构
架构·node.js
weixin_471383031 天前
Node.js + Express 入门实战笔记-01-基础
node.js·lua·express
摇滚侠1 天前
SpringMVC 入门到实战 RESTFul 案例 56-63
java·开发语言·后端·spring·restful