如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序
使用 Node.js 將 MongoDB 連接到您的應(yīng)用程序
MongoDB 是一個開源的 NoSQL 數(shù)據(jù)庫管理程序。 NoSQL 數(shù)據(jù)庫對于處理大量分布式數(shù)據(jù)非常有用。我們可以在這個數(shù)據(jù)庫中存儲信息,對其進(jìn)行管理,然后檢索它并將其顯示給查看我們應(yīng)用程序的人。
現(xiàn)在,要從 Node.js 服務(wù)器連接到 Mongo 數(shù)據(jù)庫,您可以使用:
- Mongo,官方驅(qū)動npm包
- Mongoose,nodejs 中 mongo 的優(yōu)雅對象建模工具
大多數(shù)在線教程都教如何使用 mongoose 在 MongoDB 中設(shè)置 Node/Express 應(yīng)用程序,這對初學(xué)者沒有太大幫助。
在本教程中,我將向您介紹設(shè)置 MongoDB 帳戶、生成連接字符串以及在不使用 mongoose 的情況下將 MongoDB 數(shù)據(jù)庫連接到應(yīng)用程序的基礎(chǔ)知識。
如果您喜歡觀看視頻,請查看教程 這里 .
讓我們開始吧!
第 1 步。創(chuàng)建一個帳戶
前往 MongoDB Atlas 的 網(wǎng)站 并使用您的電子郵件注冊。
您可能需要回答一個簡短的問卷來創(chuàng)建您的帳戶。
步驟 2. 部署您的第一個集群
概括地說,集群是存儲數(shù)據(jù)庫副本的一組節(jié)點(diǎn)。
單擊構(gòu)建數(shù)據(jù)庫,然后選擇共享數(shù)據(jù)庫類型(免費(fèi)的!)。
它將為您提供自定義集群的選項(xiàng),但您可以使用默認(rèn)值。只需確保您仍處于免費(fèi)套餐中。之后,單擊創(chuàng)建集群。
步驟 3. 創(chuàng)建用戶名和密碼
在后臺創(chuàng)建集群時,您必須創(chuàng)建一個數(shù)據(jù)庫用戶。用戶名和密碼與您用于登錄 MongoDB Atlas 的用戶名和密碼不同;它們將僅用于此特定數(shù)據(jù)庫(它有助于保持?jǐn)?shù)據(jù)安全并有助于控制誰可以訪問哪些數(shù)據(jù))。
確保安全地存儲您的密碼,因?yàn)槲覀冃枰鼇磉B接數(shù)據(jù)庫。
第 4 步。添加您的 IP 地址
在連接到集群之前,您需要將您的 IP 地址列入白名單。這是 MongoDB Atlas 中內(nèi)置的安全功能。繼續(xù)并單擊添加您的當(dāng)前 IP 地址。
之后,只需單擊完成并關(guān)閉,當(dāng)對話框打開時,單擊轉(zhuǎn)到數(shù)據(jù)庫。
第5步.首頁
歡迎訪問您的數(shù)據(jù)庫主頁;你應(yīng)該在那里看到你的集群。在將其連接到您的應(yīng)用程序之前,您必須在其中創(chuàng)建一個集合。
第 6 步:創(chuàng)建集合
單擊瀏覽集合,然后添加我自己的數(shù)據(jù)
鍵入數(shù)據(jù)庫的名稱和集合名稱。在我的例子中,我的數(shù)據(jù)庫名稱是“to-do-app”,集合名稱是“tasks”。單擊創(chuàng)建。
太好了,您已經(jīng)創(chuàng)建了一個集合,您的所有對象都將保存在其中。
步驟 7. 生成連接字符串
返回到您的數(shù)據(jù)庫主頁(左上角,在 DEPLOYMENT 下),然后在集群的主頁上,單擊 Connect。您將獲得三種連接數(shù)據(jù)庫的方法。
選擇“連接您的應(yīng)用程序”方法。
提供的連接字符串將用于您的應(yīng)用程序(因此您的應(yīng)用程序可以連接和操作數(shù)據(jù)庫)。
步驟 8. 初始化您的項(xiàng)目
現(xiàn)在轉(zhuǎn)到您的 IDE(我使用 VS Code)并啟動您的應(yīng)用程序。
如果這是您第一次開發(fā)全棧 Web 應(yīng)用程序,您需要將 Node.js 下載到您的計(jì)算機(jī)上。
您可以從 官方節(jié)點(diǎn)網(wǎng)站 ,它還將安裝 npm(節(jié)點(diǎn)包管理器)。
npm 是 Node.js 的包管理器,擁有數(shù)十萬個包。盡管它確實(shí)創(chuàng)建了一些目錄結(jié)構(gòu)/組織,但這不是主要目的。
它的主要目標(biāo)是自動化依賴和包管理。這意味著您可以在 package.json 文件中指定項(xiàng)目的所有依賴項(xiàng)。任何時候您(或其他任何人)需要開始您的項(xiàng)目時,他們只需運(yùn)行 npm install 并立即安裝所有依賴項(xiàng)。除此之外,還可以指定您的項(xiàng)目所依賴的版本,以防止更新破壞您的項(xiàng)目。
要使用 npm 初始化您的第一個項(xiàng)目,請創(chuàng)建一個項(xiàng)目文件夾,并將目錄更改為您的項(xiàng)目文件夾。
完成后,您就可以使用以下命令初始化您的第一個項(xiàng)目:
npm init ## 觸發(fā)項(xiàng)目的初始化
步驟 9. 安裝本地包
使用 npm 安裝任何軟件包后,該軟件包將作為依賴項(xiàng)安裝在您的 package.json 文件中的應(yīng)用程序中,并且其模塊存儲在 node_modules 文件夾中。
npm 安裝 是安裝您選擇的包的標(biāo)準(zhǔn) NPM 命令。
npm 安裝<package name>
現(xiàn)在讓我們安裝我們將用于這個項(xiàng)目的包。
表達(dá):
npm 安裝快遞
MongoDB:
npm 安裝 mongodb
多特納夫:
npm 安裝 dotenv
dotenv 包存儲了我們不想共享的敏感信息。它創(chuàng)建環(huán)境變量并將它們隱藏在我們的主代碼中,例如,您可以保護(hù) env 文件中的私鑰,并在將其推送到 GitHub 時將其隱藏。
您可以檢查所有內(nèi)容是否已成功安裝在您的 package-lock.json 上(在 packages 下)。
步驟 10. 需要依賴項(xiàng)
安裝包后,新建一個 服務(wù)器.js 文件并使用您的代碼編輯器打開它。然后,添加以下代碼行:
const express = require('express') #1 const app = express() #2 const MongoClient = require('mongodb').MongoClient. #3
代碼說明:
- 在您的第一行代碼中,您使用 require 函數(shù)來包含“express 模塊”。
- 在使用 express 模塊之前,您需要為它創(chuàng)建一個對象。
- MongoDB 模塊導(dǎo)出 MongoClient,您將使用它連接到 MongoDB 數(shù)據(jù)庫。您可以使用 MongoClient 的實(shí)例連接到集群、訪問數(shù)據(jù)庫并關(guān)閉與該集群的連接。
步驟 11. 連接數(shù)據(jù)庫
您必須為 MongoDB 給出的字符串聲明一個變量。重要提示:將 替換為您之前創(chuàng)建的實(shí)際密碼。
const connectionString = 'mongodb+srv://juliafm:<password> @cluster0.qvesujr.mongodb.net/?retryWrites=true&w=majority'
要完成與外部數(shù)據(jù)庫的連接,請?zhí)砑右韵麓a行:
MongoClient.connect(connectionString) .then(客戶端 => { console.log(`連接到數(shù)據(jù)庫`) const db = client.db('to-do-app') const tasksCollection = db.collection('tasks') }) //CRUD 請求 .catch(錯誤 => 控制臺.錯誤(錯誤))
代碼說明:
- 創(chuàng)建一個帶有承諾的函數(shù)
- 告訴(然后)客戶下一步該做什么
- 將其作為參數(shù)傳遞給箭頭函數(shù)
- 創(chuàng)建一個 console.log 語句以確保您已連接
- 指定您要連接的數(shù)據(jù)庫和集合
- 添加一個 catch 語句,看看我們是否得到任何錯誤
太棒了,你都準(zhǔn)備好了。如果您現(xiàn)在運(yùn)行服務(wù)器,您應(yīng)該會在終端上看到“已連接到數(shù)據(jù)庫”。
這是你到目前為止的代碼:
常量表達(dá) = 要求('表達(dá)') 常量應(yīng)用程序 = 快遞() 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('連接到數(shù)據(jù)庫') const db = client.db('to-do-app') const taskCollection = db.collection('tasks') //CRUD 請求 }) .catch(錯誤=> console.error(錯誤))
步驟 12. 設(shè)置 .env
出于安全原因,我想向您展示如何將 MongoDB 連接字符串移動到 .env 文件。
為此,您必須在項(xiàng)目文件夾中創(chuàng)建一個 .env 文件。在此文件中,創(chuàng)建一個變量 DB_STRING 并粘貼您的連接字符串(不要忘記將占位符更改為您的實(shí)際密碼)。
返回到您的 server.js 文件,刪除保存連接字符串的變量,然后添加它:
需要('dotenv').config() 常量 connectionString = process.env.DB_STRING;
最后,創(chuàng)建一個 .gitignore 文件并在那里添加 .env (你會看到我已經(jīng)添加了 node_modules,因?yàn)樗鼈兲亓耍瑳]有必要將它們推送到 Github)。
.gitignore 文件指定了 Git 應(yīng)該忽略的故意未跟蹤的文件。
請記住,如果您要推送到 Heroku,則必須從 .gitignore 文件中刪除 .env ,因?yàn)樗枰L問數(shù)據(jù)庫?;蛘?,您可以通過 Heroku 儀表板中應(yīng)用程序的“設(shè)置”選項(xiàng)卡添加此配置變量。
結(jié)論
我希望本教程對您有所幫助。如果您還有任何問題,請告訴我;我總是很樂意提供幫助!
如果您喜歡這個出版物,請?jiān)?Medium 上關(guān)注我以獲取我的最新文章。
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明
本文鏈接:https://www.qanswer.top/33100/15141308
到此這篇關(guān)于使用 Node.js 將 MongoDB 連接到您的應(yīng)用程序的文章就介紹到這了,更多相關(guān)Node.js連接MongoDB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
node.js?readline和line-reader逐行讀取文件方法
Readline是Node的原生模塊。它是專門為從任何可讀流逐行讀取內(nèi)容而開發(fā)的。它可用于從命令行讀取數(shù)據(jù),line-reader模塊是Node.js中逐行讀取文件的開源模塊。它不是本地模塊,所以你需要使用npm(節(jié)點(diǎn)包管理器)安裝它2022-10-10node.js中的fs.realpathSync方法使用說明
這篇文章主要介紹了node.js中的fs.realpathSync方法使用說明,本文介紹了fs.realpathSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12gulp加批處理(.bat)實(shí)現(xiàn)ng多應(yīng)用一鍵自動化構(gòu)建
這篇文章主要給大家介紹了利用gulp加上批處理(.bat)實(shí)現(xiàn)ng多應(yīng)用一鍵自動化構(gòu)建的相關(guān)資料,文中介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02手寫簡版無三方依賴的Node-Server實(shí)現(xiàn)示例
這篇文章主要為大家介紹了手寫簡版無三方依賴的Node-Server實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Sublime Text3 配置 NodeJs 環(huán)境的方法
大家都知道,Sublime Text 安裝插件一般從 Package Control 中直接安裝即可,當(dāng)我安裝 node js 插件時候,直接通過Package Control 安裝,雖然插件安裝成功了,但是找不到配置文件 Nodejs.sublime-build 來更改一些配置2020-05-05