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


۱۷ اسفند ۱۳۹۷

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

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

برای ایجاد دیتابیس جدید در پنل لیارا به بخش دیتابیس ها رفته و روی گزینه + در قسمت بالا – چپ کلیک کنید. سپس از منوی باز شده نوع دیتابیس قابل انتخاب کردن است. بر روی 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 شما را دریافت و در برنامه اعمال کند یا اینکه در کنسول لیارا و در صفحه برنامه مورد نظر از منوی سمت راست به بخش متغیر های برنامه رفته و به صورت دستی تنظیمات را وارد کنید.

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi

همراه شما هستیم

در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟
تلفن واحد فروش:
۰۲۵-۳۳۵۵۷۶۱۹ (روزهای کاری ۹ الی ۱۷)
تلفن واحد فروش: ۳۳۵۵۷۶۱۹-۰۲۵ (روزهای کاری ۹ الی ۱۷)