如何使用 Node.js 搭建 RESTful API?

RESTful API 是一种常见的 Web API 设计风格,它使用 HTTP 协议中的 GET、POST、PUT、DELETE 等方法来实现对资源的操作。在 Web 开发中,使用 RESTful API 可以让前后端分离,提高系统的可扩展性和可维护性。本文将介绍如何使用 Node.js 搭建 RESTful API。

准备工作

在开始搭建 RESTful API 之前,需要安装 Node.js 和 npm。Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,可以用于开发服务器端应用程序。npm 是 Node.js 的包管理工具,可以用于安装和管理 Node.js 模块。

安装完成 Node.js 和 npm 后,可以使用以下命令检查版本:

node -v
npm -v

如果输出了版本号,则表示安装成功。

创建项目

首先,需要创建一个项目目录,并在其中初始化 npm:

mkdir my-api
cd my-api
npm init -y

该命令将在当前目录下创建一个名为 my-api 的项目,并自动生成 package.json 文件。

安装依赖

使用 npm 安装需要的依赖:

npm install express body-parser mongoose --save
  • express:用于创建 Web 服务器和路由。
  • body-parser:用于解析 HTTP 请求体中的 JSON 数据。
  • mongoose:用于操作 MongoDB 数据库。

编写代码

创建服务器

在项目根目录下创建一个名为 index.js 的文件,并编写以下代码:

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

const app = express();

app.use(bodyParser.json());

app.listen(3000, () => {
  console.log('Server started on port 3000');
});

该代码创建了一个 Express 应用程序,并使用 bodyParser 中间件来解析 HTTP 请求体中的 JSON 数据。然后,启动服务器并监听 3000 端口。

创建路由

在 index.js 中添加以下代码:

const router = express.Router();

router.get('/', (req, res) => {
  res.send('Hello World!');
});

app.use('/api', router);

该代码创建了一个名为 router 的路由实例,并定义了一个 GET 请求处理程序,用于处理 /api 路径的请求,并返回 "Hello World!"。

连接数据库

在 index.js 中添加以下代码:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my-api', { useNewUrlParser: true });

mongoose.connection.on('connected', () => {
  console.log('Connected to database');
});

该代码使用 mongoose 连接名为 my-api 的 MongoDB 数据库,并在连接成功后输出日志信息。

创建模型

在 models 目录下创建一个名为 user.js 的文件,并编写以下代码:

const mongoose = require('mongoose');

const UserSchema = mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  date: {
    type: Date,
    default: Date.now
  }
});

module.exports = mongoose.model('User', UserSchema);

该代码定义了一个名为 User 的模型,用于操作 users 集合。该模型包含 name、email、password 和 date 四个属性。

实现 CRUD 操作

在 routes 目录下创建一个名为 users.js 的文件,并编写以下代码:

const express = require('express');
const router = express.Router();
const User = require('../models/user');

router.get('/', (req, res) => {
  User.find()
    .then(users => res.json(users))
    .catch(err => res.status(500).json({ error: err }));
});

router.get('/:id', (req, res) => {
  User.findById(req.params.id)
    .then(user => res.json(user))
    .catch(err => res.status(500).json({ error: err }));
});

router.post('/', (req, res) => {
  const user = new User({
    name: req.body.name,
    email: req.body.email,
    password: req.body.password
  });

  user.save()
    .then(user => res.json(user))
    .catch(err => res.status(500).json({ error: err }));
});

router.put('/:id', (req, res) => {
  User.findByIdAndUpdate(req.params.id, req.body, { new: true })
    .then(user => res.json(user))
    .catch(err => res.status(500).json({ error: err }));
});

router.delete('/:id', (req, res) => {
  User.findByIdAndDelete(req.params.id)
    .then(() => res.json({ message: 'User deleted' }))
    .catch(err => res.status(500).json({ error: err }));
});

module.exports = router;

该代码定义了一个名为 users 的路由实例,并实现了以下 CRUD 操作:

  • GET /api/users:获取所有用户。
  • GET /api/users/:id:获取指定 ID 的用户。
  • POST /api/users:创建新用户。
  • PUT /api/users/:id:更新指定 ID 的用户。
  • DELETE /api/users/:id:删除指定 ID 的用户。

测试 API

使用 Postman 或其他 HTTP 客户端工具测试 API。

总结

本文介绍了如何使用 Node.js 搭建 RESTful API,并实现了 MongoDB 数据库的连接和 CRUD 操作。在实际项目中,可以根据需求扩展和优化 API 的功能和性能。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658d94c9eb4cecbf2d389e25


纠错
反馈