在前端开发中,使用 Node.js 和 MongoDB 搭建 RESTful API 是很常见的一种情况。而 Mongoose 是一个优秀的 Node.js 的对象模型工具,它可以更好的与 MongoDB 交互。
在本文中,我们将详细介绍如何使用 Mongoose 和 MongoDB 搭建一个 RESTful API,并附有示例代码。
简介
在开始实现之前,我们需要了解一些基本概念。
- REST:Representational State Transfer,即表现层状态转换。它是一种构建 Web 应用程序的架构风格。
- API:Application Programming Interface,即应用程序编程接口。它是一种允许不同程序之间进行通信的方式。
- MongoDB:一种文档型非关系型数据库(NoSQL)。它使用文档存储数据,这意味着我们不需要事先定义表结构。
在本文中,我们将使用 Express 和 Mongoose 来搭建一个 RESTful API。
安装与配置
首先,我们需要安装 Node.js 和 MongoDB,这里不再重复。然后,我们需要创建一个新的项目来开始我们的 RESTful API。
$ mkdir my-api $ cd my-api $ npm init -y
在接下来的步骤中,我们需要安装一些必要的依赖项:
$ npm i mongoose express body-parser cors
在安装完成后,我们需要创建一个 server.js
文件。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- ---- - ---------------- ----- --- - ---------- ---------------- --------------------------- ------------------------------- --------- ---- ---- ----- ---- - ----- ---------------- -- -- - ---------------------- -- ---- ---------- ---
我们已经创建了一个基本的 Express 应用程序,并将它运行在 8080
端口上。
连接 MongoDB
接下来,我们需要连接到 MongoDB 数据库。首先,我们需要创建一个 .env
文件来存储 MongoDB 的 URI。
MONGO_URL=mongodb://localhost:27017/my-api
现在,我们需要将这个 URI 加载到我们的应用程序中。我们可以使用 dotenv
包来完成这个任务。
$ npm i dotenv
require('dotenv').config(); const mongoose = require('mongoose'); mongoose.connect(process.env.MONGO_URL, { useNewUrlParser: true, useUnifiedTopology: true });
我们已经成功连接到 MongoDB 数据库。接下来,我们需要定义一个 Mongoose 的模型来操作数据库。
定义模型
在本文中,我们将创建一个简单的模型来存储用户信息。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---------- - --- ----------------- ----- ------- ------ ------- --------- ------ --- ----- ---- - ---------------------- ------------ -------------- - -----
这个模型定义了一个 User
对象,它有三个属性:name
,email
和 password
。我们已经成功地定义了 Mongoose 模型,接下来我们需要使用它来创建 RESTful API。
创建路由
在 server.js
文件中,我们需要定义路由来处理 HTTP 请求。首先,我们需要加载模型。
const User = require('./models/user');
然后,我们可以开始编写路由。例如,我们需要编写一个用户注册的路由:
-- -------------------- ---- ------- ------------------ ----- ---- ----- -- - ----- ---- - --- --------------- --------------- -- - -- ----- - ------ ---------- - ------ --------------- --- ---
这个路由将在 /users
路径上监听 POST
请求。当有请求时,它会创建一个新的用户并将其保存到数据库中。如果出现错误,它将把错误传递给下一个处理程序。否则,它将返回一个 JSON 格式的用户对象。
我们可以根据需要定义其他路由,例如更新用户、删除用户等。
验证、加密
在开发实际项目中,我们需要对用户提交的数据进行验证。而在本文中,我们将对用户密码进行加密。
-- -------------------- ---- ------- ----- ------ - ------------------ ------------------ ----- ---- ----- -- - ----- - ----- ------ -------- - - --------- -- ------ -- ------ -- ---------- - ------ ---------------------- ------ -------- ------- --- - --------------------- --- ----- ----- -- - -- ----- - ------ ---------- - ----- ---- - --- ------ ----- ------ --------- ---- --- --------------- -- - -- ----- - ------ ---------- - ------ --------------- --- --- ---
在这个路由中,我们首先检查用户提交的数据是否合法。如果合法,我们将使用 bcrypt
包对密码进行加密。在完成加密后,我们将创建一个新用户并将其保存到数据库中。
结论
通过本文的介绍,我们已经了解了如何使用 Mongoose 和 MongoDB 搭建一个 RESTful API。在实际开发项目中,我们可以根据需要定义更多的路由,并使用不同的模型来存储数据。
完整示例代码:
https://github.com/tinalulu88/create-restful-api-with-mongoose-and-mongodb/
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670cec9b5f551281025c0549