mohamad najafi
mohamad najafi
خواندن ۴ دقیقه·۴ سال پیش

شروع کار با پایگاه داده MongoDB - قسمت دوم ( اتصال به وب سرویس )


سلام مجدد. توی قسمت قبل با پیش نیاز های نصب و خود نصب و ایجاد پایگاه داده در MongoDb آشنا شدیم ( قسمت اول رو میتونید از اینجا ببینید ). تو این قسمت قصد دارم همین پایگاه داده رو به وب سرویس ساده ای که خودم میسازم متصلش کنم. تقریبا برای تمامی زبان های برنامه نویسی سمت سرور درایوری برای اتصال به پایگاه داده ی MongoDB وجود داره. از پایتون و php بگیرید تا NodeJS و GoLang. بر طبق حوزه ی کاری که دارم انتخاب من NodeJS هست.
پس ابتدا یه سرویس ساده ی NodeJS رو راه اندازی میکنم و با همون مثال اقدام به اتصال به پایگاه داده میکنم. برای شروع باید ابتدا پکیج NodeJS رو روی سیستمتون (تقریبا برای همه سیستم عامل ها و توزیع ها قابل نصب هست) نصب کنید. در بخش قبلی گفتم که سیستم عامل من لینوکس و توزیعش Ubuntu 20.04 هست که با استفاده از راهنمایی که وجود داره میتونم یا بصورت مستقیم پکیج رو دانلود و نصب کنم و یا برم سراغ ریپازیتوری ها (مخازن) . این انتخاب کاملا بستگی به شما داره اما نصب از ریپازیتوری ها راحت تر و سریع تر خواهد بود.
بعد از نصب NodeJS یه سرویس ساده به صورت زیر توی فایلی به نام server.js مینویسیم:

const http = require(&quothttp&quot); const hostname = &quot127.0.0.1&quot const port = 3000; const server = http.createServer(); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });

این ساده ترین وب سرویسی هست که میشه توی NodeJS نوشت و از همین نقطه میشه شروع کرد و سرویس رو گسترش داد ( اگر استقبال بشه یه سریال نوشتاری هم از NodeJS مینویسم)

تنها کاری که این سرویس میکنه اینه که پروتوکول HTTP رو روی پورت ۳۰۰۰ براتون فراهم میکنه تا بتونید یک وب سرویس پایدار داشته باشید.

حالا با استفاده از ترمینال وارد دایرکتوری این فایل میشم و دستور زیر رو تایپ میکنم

node server.js

بعد از فشردن کلید Enter ( یا همون Return) فرمان اجرای کد NodeJS رو به ترمینال میدیم و اگر NodeJS به درستی نصب شده باشه با پیام زیر روبرو میشید.

Server running at http://127.0.0.1:3000/

و این ینی سرویس در حال اجراست ( با فشردن کلید های Ctrl + C میتونید سرویس رو متوقف کنید)

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

npm install mongoose


نکته : دقت کنید که npm به همراه NodeJS نصب میشه و وظیفش مدیریت پکیج های NodeJS هست پس نگران این دستور نباشید.

بعد از کامل شدن نصب متوجه خواهید شد که یه دایرکتوری به نام node_modules به همراه یه فایل به نام package.json به دایرکتوری فعلیتون اضافه شده. در حقیقت دایرکتوری node_modules حاوی پکیج هایی هستند که موقع نصب از پکیج منیجر (npm) خواستید تا براتون بارگزاری کنه و اگر پاک بشن بایستی دوباره با دستور بالا اقدام به نصبشون کنید. فایل package.json هم حاوی پیکر بندی کلی پروژتون هست که وقتی اونو با یه ادیتور متنی مثل nano باز کنید با چنین خطوطی مواجه میشید:


محتوای فایل package.json
محتوای فایل package.json

محتوای فایل نشون میده که درایور mongoose با نسخه 5.11.15 پیش نیاز این پروژه هست .( اخرین نسخه mongoose در هنگام نوشتن این مطلب 5.11.15 هست و ممکنه با تغییر زمان و نسخه برای شما شماره ی دیگری از این نسخه رو نمایش بده) . هر وقت هم دایرکتوری node_modules شما پاک شد شما میتونید با فراخوانی دستور زیر اقدام به نصب تمام پیش نیاز ها (dependencies) بکنید.

npm install

دوباره برمیگردیم به سراغ سرویس اصلیمون ینی فایل server.js . چند خط به این فایل اضافه میکنیم که بتونیم به یه پایگاه داده در MongoDB متصل بشیم.

const http = require(&quothttp&quot); const mongoose = require(&quotmongoose&quot); const hostname = &quot127.0.0.1&quot const port = 3000; const server = http.createServer(); mongoose.connect(&quotmongodb://localhost:27017/dbName&quot).then(connection_result => { console.log(&quotConnected to mongo database&quot); }).catch(error => { console.log(error) }) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });

توی خط دوم فقط ماژول mongoose رو اضافه کردیم.
توی خط ششم هم از درایور mongoose خواستیم که به پایگاه داده dbName متصل بشه (البته این پایگاه داده فعلا هیچ کاربر و رمز عبوری نداره ). درخواست اتصال رو هم به صورت promise فرستادیم که اگر اتصال به درستی انجام شد به صورت پیام در ترمینال نشون بده و اگر هم احیانا به هر دلیل اشکالی در اتصال وجود داشت باز هم در قسمت catch اشکال رو در ترمینال درج کنه. اینطوری میتونیم راحت تر با تفسیر متن اشکال درج شده مشکلات احتمالی رو حل کنیم .

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


mongoose.connect(&quotmongodb://dbUserName:dbPassword@localhost:27017/dbName&quot).then(connection_result => { console.log(&quotConnected to mongo database&quot); }).catch(error => { console.log(error) })

با استفاده از الگوی بالا میتونید به پایگاه داده ی dbNam با نام کاربری dbUserName و رمز عبور dbPassword متصل بشید. فقط دقت کنید که اگر این موارد رو به درستی وارد نکنید بعد از اجرای سرویس ترمینال وجود اشکالی رو گوشزد میکنه که ناشی از همین اشتباه است.

امیدوارم این قسمت رو هم با دقت دنبال کرده باشید.
در قسمت های بعد به سراغ گسترش سرویس خواهیم رفت و سعی میکنیم مدلسازی کنیم و دیتا های مورد نیازمون رو ذخیره یا بازخوانی کنیم.

همیشه پر انرژی باشید و برقرار

مونگو‌‌mongomongoosenodejsmongodb
اگه بشه اسممو گذاشت " توسعه دهنده " فامیلیمو میزارم " وب "
شاید از این پست‌ها خوشتان بیاید