本文详细介绍如何使用 Node.js 原生驱动连接 MongoDB 数据库,而非依赖 Mongoose。内容涵盖 MongoDB Atlas 账户注册、集群部署、白名单配置及连接字符串生成,并结合 Express 框架演示如何通过 MongoClient 建立连接、创建数据库集合以及处理环境变量,帮助开发者掌握后端与 NoSQL 数据库的基础交互流程。
使用 Node.js 将 MongoDB 连接到您的应用程序
MongoDB 是一款开源的 NoSQL 数据库管理系统。NoSQL 数据库在处理海量分布式数据方面具有显著优势。我们可以在该数据库中存储、管理信息,并将其检索出来展示给应用程序的用户。
若要从 Node.js 服务器连接至 MongoDB 数据库,主要有两种工具可供选择:
- Mongo,即官方提供的 npm 驱动包
- Mongoose,一种在 Node.js 中操作 MongoDB 的优雅对象建模工具
目前大多数在线教程都侧重于如何使用 Mongoose 来搭建 Node/Express 应用,这对初学者而言往往缺乏直接帮助。
在本教程中,我将指导您完成 MongoDB 账户设置、生成连接字符串,并演示如何在不使用 Mongoose 的情况下,直接将 MongoDB 数据库连接到您的应用程序。
如果您偏好视频学习,可以查看本教程的视频版本。
https://youtu.be/Bcg6C0G_tAA
让我们开始吧!
第 1 步。创建一个帐户
访问 MongoDB Atlas 官网并使用您的电子邮件地址进行注册。

创建账户时,您可能需要回答一份简短的问卷。
步骤 2. 部署您的第一个集群
简而言之,集群是一组用于存储数据库副本的节点。
点击“构建数据库”,然后选择共享数据库类型(免费套餐)。

系统会提供自定义集群的选项,但您可以直接使用默认设置。请确保您仍处于免费套餐范围内,随后点击“创建集群”。
步骤 3. 创建用户名和密码
在后台集群创建过程中,您必须创建一个数据库用户。该用户名和密码与登录 MongoDB Atlas 的账号不同;它们仅用于此特定数据库(这有助于保持数据安全并控制数据访问权限)。
请安全地存储您的密码,因为后续连接数据库时需要用到它。

第 4 步。添加您的 IP 地址
在连接集群之前,您需要将您的 IP 地址加入白名单。这是 MongoDB Atlas 内置的安全机制。请继续操作,点击“添加您的当前 IP 地址”。

随后,只需点击“完成并关闭”,当对话框弹出时,点击“转到数据库”。
第5步.首页
欢迎进入您的数据库主页;您应该能看到您的集群。在将其连接到应用程序之前,您必须在此处创建一个集合(Collection)。

第 6 步:创建集合
点击“浏览集合”,然后选择“添加我自己的数据”。

输入数据库名称和集合名称。在我的示例中,数据库名为“to-do-app”,集合名为“tasks”。点击“创建”。
太好了,您已经成功创建了一个集合,您的所有对象数据都将保存在其中。

步骤 7. 生成连接字符串
返回到您的数据库主页(左上角,在“部署”下),然后在集群主页上,点击“连接”。您将看到三种连接数据库的方法。
选择“连接您的应用程序”方法。

生成的连接字符串将用于您的应用程序(以便应用程序可以连接并操作数据库)。

步骤 8. 初始化您的项目
现在转到您的 IDE(我使用的是 VS Code)并启动您的应用程序。
如果您是第一次开发全栈 Web 应用程序,您需要将 Node.js 下载到您的计算机上。
您可以从官方节点网站下载,它还将安装 npm(节点包管理器)。
npm 是 Node.js 的包管理器,拥有数十万个包。尽管它确实会创建一些目录结构/组织形式,但这并非其主要目的。
它的主要目标是自动化依赖和包管理。这意味着您可以在 package.json 文件中指定项目的所有依赖项。任何时候您(或其他任何人)需要启动项目时,只需运行 npm install 即可立即安装所有依赖项。此外,还可以指定项目所依赖的版本,以防止更新破坏您的项目。
要使用 npm 初始化您的第一个项目,请创建一个项目文件夹,并将目录更改为您的项目文件夹。
完成后,您就可以使用以下命令初始化您的第一个项目:
npm init ## 触发项目的初始化步骤 9. 安装本地包
使用 npm 安装任何软件包后,该软件包将作为依赖项安装在您的 package.json 文件中的应用程序中,并且其模块存储在 node_modules 文件夹中。
npm 安装 是安装您选择的包的标准 NPM 命令。
npm 安装<package name>现在让我们安装我们将用于这个项目的包。
表达:
npm 安装快递MongoDB:
npm 安装 mongodb多特纳夫:
npm 安装 dotenvdotenv 包存储了我们不想共享的敏感信息。它创建环境变量并将它们隐藏在我们的主代码中,例如,您可以保护 env 文件中的私钥,并在将其推送到 GitHub 时将其隐藏。
您可以检查所有内容是否已成功安装在您的 package-lock.json 上(在 packages 下)。

步骤 10. 需要依赖项
安装包后,新建一个 服务器.js 文件并使用您的代码编辑器打开它。然后,添加以下代码行:
const express = require('express') #1
const app = express() #2
const MongoClient = require('mongodb').MongoClient. #3代码说明:
- 在您的第一行代码中,您使用 require 函数来包含“express 模块”。
- 在使用 express 模块之前,您需要为它创建一个对象。
- MongoDB 模块导出 MongoClient,您将使用它连接到 MongoDB 数据库。您可以使用 MongoClient 的实例连接到集群、访问数据库并关闭与该集群的连接。
步骤 11. 连接数据库
您必须为 MongoDB 给出的字符串声明一个变量。重要提示:将 替换为您之前创建的实际密码。
const connectionString = 'mongodb+srv://juliafm:<password> @cluster0.qvesujr.mongodb.net/?retryWrites=true&w=majority'要完成与外部数据库的连接,请添加以下代码行:
MongoClient.connect(connectionString)
.then(客户端 => {
console.log(`连接到数据库`)
const db = client.db('to-do-app')
const tasksCollection = db.collection('tasks')
}) //CRUD 请求 .catch(错误 => 控制台.错误(错误))代码说明:
- 创建一个带有承诺的函数
- 告诉(然后)客户下一步该做什么
- 将其作为参数传递给箭头函数
- 创建一个 console.log 语句以确保您已连接
- 指定您要连接的数据库和集合
- 添加一个 catch 语句,看看我们是否得到任何错误
太棒了,你都准备好了。如果您现在运行服务器,您应该会在终端上看到“已连接到数据库”。
这是你到目前为止的代码:
常量表达 = 要求('表达')
常量应用程序 = 快递()
const MongoClient = require('mongodb').MongoClient
const connectionString = 'mongodb+srv://juliafm:[[email protected]](/cdn-cgi/l/email-protection)/?retryWrites=true&w=majority' MongoClient.connect(connectionString)
.then(客户端 => {
console.log('连接到数据库')
const db = client.db('to-do-app')
const taskCollection = db.collection('tasks') //CRUD 请求
})
.catch(错误=> console.error(错误))步骤 12. 设置 .env
出于安全原因,我想向您展示如何将 MongoDB 连接字符串移动到 .env 文件。
为此,您必须在项目文件夹中创建一个 .env 文件。在此文件中,创建一个变量 DB_STRING 并粘贴您的连接字符串(不要忘记将占位符更改为您的实际密码)。

返回到您的 server.js 文件,删除保存连接字符串的变量,然后添加它:
需要('dotenv').config()
常量 connectionString = process.env.DB_STRING;
最后,创建一个 .gitignore 文件并在那里添加 .env (你会看到我已经添加了 node_modules,因为它们太重了,没有必要将它们推送到 Github)。
.gitignore 文件指定了 Git 应该忽略的故意未跟踪的文件。

请记住,如果您要推送到 Heroku,则必须从 .gitignore 文件中删除 .env ,因为它需要访问数据库。或者,您可以通过 Heroku 仪表板中应用程序的“设置”选项卡添加此配置变量。
结论
我希望本教程对您有所帮助。如果您还有任何问题,请告诉我;我总是很乐意提供帮助!
如果您喜欢这个出版物,请在 Medium 上关注我以获取我的最新文章。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/33100/15141308
到此这篇关于使用 Node.js 将 MongoDB 连接到您的应用程序的文章就介绍到这了,更多相关Node.js连接MongoDB内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!