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