Node.js + Express + MongoDB 完整指南:从零构建 REST API

作者:API传播员 · 2025-09-15 · 阅读时间:5分钟
本教程详细介绍了如何使用Node.js、Express和MongoDB创建一个功能完善的REST API。从项目初始化到API部署的完整流程,包括设置服务器、定义数据模型和创建路由。通过学习,您将能够独立构建和扩展RESTful APIs,掌握Node.js创建REST API的核心技术。

一. 引言

本教程将详细介绍如何使用 Node.jsExpressMongoDB 创建一个功能完善的 REST API。通过本文,你将掌握从项目初始化到 API 部署的完整流程,并能够独立构建和扩展 RESTful APIs。


二. 先决条件

在开始之前,你需要具备以下基础知识:

  • JavaScript 基础知识
  • 对 Node.js 基础使用有所了解

三. 步骤 1:设置项目

首先,为项目创建一个新目录,并在终端中导航到该目录:

$ mkdir node-rest-api
$ cd node-rest-api

接着,初始化一个新的 Node.js 项目:

$ npm init -y

此命令会生成一个默认的 package.json 文件,用于管理项目依赖。


四. 步骤 2:安装依赖项

安装所需依赖,包括 Express、Mongoose 和 body-parser:

$ npm install express mongoose body-parser
  • Express:快速搭建服务器和路由
  • Mongoose:连接 MongoDB 并操作数据
  • body-parser:解析请求体 JSON 数据

五. 步骤 3:创建服务器

在项目目录中创建 server.js 文件,并添加以下代码:

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

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

const port = 3000;

mongoose.connect('mongodb://localhost:27017/rest-api-tutorial', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

app.listen(port, () => {
  console.log(服务器正在端口 ${port} 上运行);
});

此代码完成了服务器初始化并连接本地 MongoDB 数据库。


六. 步骤 4:定义模型

创建一个名为 models 的文件夹,并在其中创建 book.js 文件:

const mongoose = require('mongoose');

const BookSchema = new mongoose.Schema({
  title: { type: String, required: true },
  author: { type: String, required: true },
  publishedDate: { type: Date, required: true },
});

module.exports = mongoose.model('Book', BookSchema);

这里定义了一个书籍模型,包括标题、作者和出版日期。


七. 步骤 5:创建路由

创建 routes 文件夹,并在其中创建 book.js 文件:

const express = require('express');
const router = express.Router();
const Book = require('../models/book');

// 获取所有书籍
router.get('/', async (req, res) => {
  try {
    const books = await Book.find();
    res.json(books);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

// 添加一本书
router.post('/', async (req, res) => {
  const book = new Book({
    title: req.body.title,
    author: req.body.author,
    publishedDate: req.body.publishedDate,
  });

  try {
    const newBook = await book.save();
    res.status(201).json(newBook);
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});

module.exports = router;

然后更新 server.js 以包含新路由:

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const bookRoutes = require('./routes/book');

const app = express();
app.use(bodyParser.json());
app.use('/books', bookRoutes);

const port = 3000;

mongoose.connect('mongodb://localhost:27017/rest-api-tutorial', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

app.listen(port, () => {
  console.log(服务器正在端口 ${port} 上运行);
});

八. 步骤 6:测试您的 API

启动服务器:

$ node server.js

使用工具(如 Postman 或 cURL)测试以下 API 路由:

  • GET /books:获取所有书籍
  • POST /books:添加一本书

示例 POST 请求体(JSON):

{
  "title": "Node.js 入门",
  "author": "张三",
  "publishedDate": "2025-09-15"
}

九. 结论

恭喜!你已经成功使用 Node.js、Express 和 MongoDB 创建了一个 REST API。接下来可以根据需求扩展 API,添加更多路由和功能,例如:

  • PUT /books/\:id(更新书籍信息)
  • DELETE /books/\:id(删除书籍)
  • 用户认证与权限管理

通过本文,你掌握了从项目初始化到 API 路由实现的完整流程,为构建更多高级功能打下坚实基础。


原文链接: https://reintech.io/blog/how-to-use-node-js-to-create-a-rest-api