برنامه‌نویسی

راهنمای اتصال به MongoDB با استفاده از Node.JS


۱۷ اسفند ۱۳۹۷

دیتابیس MongoDB به واسطه نوع ذخیره سازی و کوئری هایی که دارد همواره محبوب توسعه دهندگان NodeJS بوده است. اگر شما هم قصد استفاده از این دیتابیس در برنامه خود را دارید با ما در این راهنمای اتصال، آن هم بر مبنای سرویس ابری لیارا همراه باشید.

ایجاد دیتابیس جدید در لیارا

برای ایجاد دیتابیس جدید در پنل لیارا به بخش دیتابیس ها رفته و روی گزینه + در قسمت بالا – چپ کلیک کنید. سپس از منوی باز شده نوع دیتابیس قابل انتخاب کردن است. بر روی MongoDB کلیک، و حجم و ظرفیت مورد نیاز را انتخاب کنید.

ظرفیت انتخاب شده برای دیتابیس در آینده قابل تغییر است.

پس از ایجاد دیتابیس اطلاعات مورد نیاز برای اتصال به دیتابیس در اختیار شما قرار می‌گیرد. این اطلاعات به شرح زیر هستند:

  • هاست
  • پورت
  • نام کاربری
  • رمز عبور

این اطلاعات مهم و امنیتی هستند. در نگه‌داری آنها تلاش کنید.

اتصال برنامه به دیتابیس

حالا برای اتصال به برنامه خود باید کتابخانه MongoDB یا کتابخانه‌های کمکی مانند Mongoose را به برنامه اضافه کنید.

کتابخانه MongoDB

این کتابخانه نسخه رسمی و کامل برای کار با دیتابیس MongoDB است که دسترسی کاملی برای کارها مختلف به شما خواهد داد ولی لازم است کدهای بیشتری بنویسید. برای نصب کد زیر را در دایرکتوری اصلی برنامه اجرا کنید:

npm install mongodb

حال در ابتدای برنامه خود کد زیر را اضافه کنید تا کلاینت دیتابیس را دریافت کنید:

const { MongoClient } = require('mongodb');

مشخصات اتصال به دیتابیس به شکل یک رشته متنی تهیه می‌شود که ساختار کلی آن به صورت زیر است:

mongodb://username:password@host:port/database?options...

که برای اتصال به سرور محلی «نصب در کامپیوتر شخصی شما» به شکل زیر:

mongodb://localhost:27017/myapp

و برای مثال سرور لیارا به صورت زیر است:

mongodb://root:zJnzi000000000000Mm@s1.liara.ir:31655/myapp

و در آخر با اجرای کد زیر به دیتابیس متصل شویم، اگر دیتابیسی با نام وارد شده وجود نداشته باشد، در اولین اتصال ایجاد خواهد شد.

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database created!");
});

استفاده از Mongoose

این کتابخانه با پیاده‌سازی رابط‌های سطح بالاتری سعی در آسان‌کردن کار با دیتابیس داشته است، شما می‌توانید با مراجعه به سایت Mongoose راهنمای استفاده از آن را مشاهده کنید.

const mongoose = require('mongoose');

mongoose.connect('mongodb://root:zJnzi00Mm@s1.liara.ir:31655/myapp', {
  useNewUrlParser: true,
  authSource: 'admin'
});

دقت کنید که برای اتصال به دیتابیس‌های لیارا حتما authSource: 'admin' را در تابع اتصال قرار دهید. myapp در آدرس‌های فوق به نام دیتابیس مورد نظر شما اشاره می‌کند. که شما می‌توانید آن را به دلخواه انتخاب کنید.

استفاده از فایل .env برای نگهداری متغیر ها برنامه

برای نگهداری صحیح از متغیرها و تنظیمات حساس برنامه، بهتر است از فایلی با نام .env استفاده کنید تا وابستگی کد برنامه به این متغیر ها کاهش پیدا کند و از این تنظیمات حساس نگهداری بهتری صورت گیرد. برای استفاده از این مقادیر باید کتابخانه‌ی dotenv را از npm به برنامه خود اضافه کنید. برای مثال فایل متغیر های این برنامه به شکل زیر است:

DB_HOST=s1.liara.ir
DB_USER=root
DB_PASS=000000000000000000000

حال با اجرای کد زیر در ابتدای برنامه فایل متغیر ها لود شده و میتوانید از آدرس های زیر به آن دسترسی داشته باشید:

require('dotenv').config();
process.env.DB_HOST // -> s1.liara.ir
process.env.DB_USER // -> root
process.env.DB_PASS // -> 000000000000000000000

لیارا میتواند به صورت جداگانه فایل .env شما را دریافت و در برنامه اعمال کند یا اینکه در کنسول لیارا و در صفحه برنامه مورد نظر از منوی سمت راست به بخش متغیر های برنامه رفته و به صورت دستی تنظیمات را وارد کنید.