RESTful API 是现代 Web 应用程序的核心,它们是构建复杂应用的基础。MongoDB 是一种可扩展的、面向文档的数据库,它具有灵活性和易用性。在本文中,我们将讨论如何使用 Node.js 和 MongoDB 创建 RESTful API。
准备工作
要创建 RESTful API,我们需要 Node.js 和 MongoDB 环境。首先,确保你已经安装了 Node.js 和 npm,并且拥有一个 MongoDB 数据库。接下来,创建项目文件夹并初始化 npm:
mkdir myproject cd myproject npm init -y
然后安装以下依赖项:
npm install express mongoose body-parser --save
其中,express 是一个流行的 Node.js 框架,用于处理 HTTP 请求和响应。mongoose 是一个与 MongoDB 交互的对象模型工具。body-parser 是一个用于解析请求正文的中间件。
定义模型和路由
我们将为 Mongo 中存储的数据定义 Schema。这是一个示例 “user” 的 schema:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---------- - --- ----------------- ----- ------- ------ - ----- ------- ------- ---- -- --------- ------ --- -------------- - ---------------------- ------------
在我们的应用程序中, 使用的是表单提交数据时,我们通常需要 bodyParser 中间件来解析请求正文,但 express 已经集成了它。接下来是路由的主要部分,在此示例中我们定义了一个 user 路由:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------ - ----------------- ----- ---- - -------------------------- ---------------- ----- ---- -- - ----- ------- - --- ------ ----- -------------- ------ --------------- --------- ----------------- --- ------------------ -- - -- ----- - -------------------------- - ---- - -------------------------- ----- --------------- - --- --- -------------- - -------
通过导入我们的 User 模型,并将其传递给 post 请求来创建新用户。
对于更复杂的 API,你可能需要使用多个路由文件和 controllers 来处理请求和响应。
连接到 MongoDB
为了连接到数据库,我们使用 mongoose.connect() 函数。在配置脚本中,从环境变量中获取 mongo URI(或硬编码)以供使用。这是一段示例代码:
const mongoose = require('mongoose'); const DB_URI = process.env.MONGODB_URI || 'mongodb://localhost/my_database_name'; mongoose.connect(DB_URI, { useNewUrlParser: true }).then(() => { console.log('DB connected'); }).catch((error) => console.log(`DB connection error: ${error}`));
可以像上面那样将 uri 硬编码 ,也可以使用 process.env
,将它保存到 .env 文件中,并使用 dotenv 模块进行解析。
集成路由到应用程序
最后,我们需要将路由集成到我们的应用程序中,打开 app.js
文件并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --------- - ------------------------- ----- --- - ---------- -- ----- ---------------- --------------------------- ------------------------------- --------- ----- ---- ----------------- ----------- -- ----- --- --- ------- -- ----- ------- ------------- ---- ----- -- - ----- --- - --- ---------- -------- ---------- - ---- ---------- --- -- ----- ------- ------------- ---- ---- ----- -- - --------------------- -- ----- ---------- ------ - ------- ----------- -------- ----------- - --- --- -------------- - ----
在这里,我们使用了 Express 的应用程序实例,并附加了路由和 body-parser 中间件。
结论
总之,在 Node.js
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672d18f9ddd3a70eb6d9c9e5