درخدمت شما هستیم با آموزش MongoDB در Node.js از وب سایت آموزش برنامه نویسی سورس باران. در این جلسه که بخش سیزدهم و آخرین جلسه آموزش Node.js است .اکثر برنامه های وب مدرن امروزی نوعی سیستم ذخیره سازی داده را در پس زمینه دارند. به عنوان مثال ، در صورت استفاده از یک برنامه خرید اینترنتی ، داده هایی مانند قیمت یک کالا هم در بانک اطلاعاتی ذخیره می شوند. فریم ورک Node js می تواند با بانکهای اطلاعاتی دو رابطه ای (مانند Oracle و MS SQL Server) و بانکهای اطلاعاتی غیر رابطه ای (مانند MongoDB) کار کند. در این آموزش خواهیم دید که چگونه می توانیم از برنامه های کاربردی Node js استفاده کنیم.
آموزش MongoDB در Nod.js
-
بانکهای اطلاعاتی js و NoSQL
-
استفاده از MongoDB و js
-
نحوه ساختن یک برنامه node express با MongoDB برای ذخیره و سرویس محتوا
بانکهای اطلاعاتی Node.js و NoSQL
با گذشت سالها ، پایگاه داده NoSQL مانند MongoDB و MySQL به عنوان پایگاه داده های ذخیره سازی داده کاملاً محبوب شده اند. توانایی این بانکهای اطلاعاتی برای ذخیره هر نوع محتوا و به ویژه در هر نوع قالب ، چیزی است که باعث می شود این پایگاه داده ها بسیار مشهور شوند. Node.js توانایی همکاری با MySQL و MongoDB را به عنوان دیتابیس دارد. برای استفاده از هر یک از این پایگاه داده ها ، شما نیاز به بارگیری و استفاده از ماژول های مورد نیاز با استفاده از مدیر بسته node دارید.
برای MySQL ، ماژول مورد نیاز “mysql” خوانده می شود و برای استفاده از MongoDB ماژول مورد نیاز برای نصب “Mongoose” است.با استفاده از این ماژول ها می توانید عملیات زیر را در Node.js انجام دهید.
- اتصال همبستگی (connection pooling) را مدیریت کنید- اینجا جایی است که می توانید تعداد اتصالات پایگاه داده MySQL را که باید توسط Nod.jsحفظ و ذخیره شود ، مشخص کنید.
- اتصال به یک پایگاه داده را ایجاد و ببندید- در هر صورت ، شما می توانید یک تابع برگشتی را فراهم کنید که هر زمان که روش های اتصال “ایجاد” و “بستن” اجرا شود ، می تواند فراخوانی شود.
- برای گرفتن داده از پایگاه داده های مربوطه برای بازیابی داده می توان از پرس و جو (Query)استفاده کرد.
- دستکاری داده ها ، مانند درج داده ها ، حذف و به روز کردن داده ها نیز با این ماژول ها قابل دستیابی است.
برای مباحث باقیمانده ، خواهیم دید که چگونه می توانیم با پایگاه داده های MongoDB در Node.js. همکاری کنیم.
آموزش MongoDB در Nod.js
همانطور که در موضوع قبلی مورد بحث قرار گرفت ، MongoDB یکی از محبوب ترین پایگاه داده ها است که به همراه Node.js. استفاده می شود. در طی این فصل خواهیم دید، چگونه می توانیم با بانک اطلاعاتی MongoDB ارتباط برقرار کنیم. چگونه می توانیم عملیات عادی خواندن داده از یک پایگاه داده و همچنین درج ، حذف و به روز کردن سوابق را در یک پایگاه داده MongoDB انجام دهیم. با توجه به هدف این فصل ، فرض کنید که داده های MongoDB زیر را در دسترس داریم.
نام بانک اطلاعاتی: EmployeeDB
نام مجموعه: Employee
Documents { {Employeeid : 1, Employee Name : Guru99}, {Employeeid : 2, Employee Name : Joe}, {Employeeid : 3, Employee Name : Martin}, }
۱٫ماژول NPM را نصب کنید
برای دسترسی به Mongo از داخل یک برنامه نود به یک درایور نیاز دارید. تعدادی درایور Mongo در دسترس است ، اما MongoDB از محبوب ترین آنها است. برای نصب ماژول MongoDB ، دستور زیر را اجرا کنید.
npm install mongodb
۲٫ ایجاد و بستن اتصال به یک پایگاه داده MongoDB. قطعه کد زیر نحوه ایجاد و بستن اتصال به یک پایگاه داده MongoDB را نشان می دهد.
توضیح کد:
۱٫ اولین قدم شامل ماژول mongoose است که از طریق تابع require انجام می شود. پس از راه اندازی این ماژول ، می توانیم از توابع لازم موجود در این ماژول برای ایجاد اتصالات به پایگاه داده استفاده کنیم.
۲٫ در مرحله بعد رشته اتصال خود را به پایگاه داده مشخص می کنیم. در رشته اتصال ، ۳ مقدار کلیدی وجود دارد که منتقل می شوند.
- اولین مورد “mongodb” است که مشخص می کند ما به یک پایگاه داده mongoDB وصل می شویم.
- مورد بعدی “localhost” است به این معنی که ما به یک پایگاه داده در دستگاه محلی وصل می شویم.
- مورد بعدی “EmployeeDB” است که نام پایگاه داده تعریف شده در پایگاه داده MongoDB ماست.
۳٫مرحله بعدی اتصال به بانک اطلاعاتی است. تابع اتصال در URL ما گرفته می شود و امکان تعیین تابع برگشتی را دارد. با باز شدن اتصال به دیتابیس فراخوانی می شود. این به ما فرصتی می دهد تا بدانیم که آیا اتصال بانک اطلاعاتی موفق بوده یا خیر.
۴٫در این تابع ، ما رشته ” Connection established ” را به کنسول می نویسیم تا نشان دهیم اتصال موفقیت آمیز ایجاد شده است.
۵٫در آخر ، ما اتصال را با استفاده از عبارت close می بندیم.
اگر کد بالا به درستی اجرا شود ، رشته ” Connected” همانطور که در شکل زیر نشان داده شده است بر روی کنسول نوشته خواهد شد.
۳٫ جستجوی داده ها در یک پایگاه داده MongoDB – با استفاده از درایور MongoDB می توانیم داده ها را از پایگاه داده MongoDB واکشی کنیم. در بخش زیر نحوه استفاده از درایور برای واکشی کلیه اسناد از مجموعه Employee در پایگاه داده EmployeeDB ما نشان داده خواهد شد. این مجموعه در پایگاه داده MongoDB ماست ، که شامل تمام اسناد مربوط به کارمندان (employee)است. هر سند دارای یک شناسه شی ( object id)، نام کارمند (Employee name)و شناسه کارمند (employee id)برای تعریف مقادیر سند است.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); cursor.each(function(err, doc) { console.log(doc); }); });
توضیح کد:
- در مرحله اول ، ما یک مکان نما را ایجاد می کنیم (مکان نما یک اشاره گر است که برای اشاره به رکوردهای مختلفی که از یک پایگاه داده بدست می آیند استفاده می شود. مکان نما برای تکرار از طریق رکوردهای مختلف در پایگاه داده استفاده می شود. در اینجا ما یک متغیر تعریف می کنیم به نام مکان نما ، که برای ذخیره نشانگر به سوابق گرفته شده از پایگاه داده استفاده می شود.) که به سوابق جمع آوری شده از مجموعه MongoDb اشاره می کند. ما همچنین می توانیم مجموعه “Employee” را برای واگذاری سوابق مشخص کنیم. تابع ()find برای مشخص کردن اینکه می خواهیم همه اسناد را از مجموعه MongoDB بازیابی کنیم ، استفاده می شود.
- اکنون از طریق مکان نما خود تکرار می کنیم و برای هر سند در مکان نما می خواهیم یک تابع را اجرا کنیم.
- تابع ما این است که به سادگی می خواهیم محتوای هر سند را روی کنسول چاپ کنیم.
توجه: – همچنین می توان یک رکورد خاص را از یک پایگاه داده واکشی کرد. این می تواند با مشخص کردن شرایط جستجو در تابع ()find انجام شود. به عنوان مثال ، فرض کنید اگر شما فقط می خواستید رکوردی را که نام employee با عنوان Guru99 دارد ، واکشی کنید ، می توانید این عبارت را به شرح زیر بنویسید.
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
اگر کد بالا با موفقیت اجرا شود ، خروجی زیر در کنسول شما نمایش داده می شود.
خروجی:
از خروجی ،
- شما قادر خواهید بود به وضوح مشاهده کنید که تمام اسناد موجود در این مجموعه بازیابی می شوند. این کار با استفاده از روش ()find از (connection (db mongoDBو تکرار آن از طریق تمام اسناد با استفاده از مکان نما امکان پذیر است.
۴٫ درج اسناد در یک مجموعه – اسناد را می توان با استفاده از متد insertOne که توسط کتابخانه MongoDB تهیه شده است ، در یک مجموعه قرار دهید. قطعه کد زیر نشان می دهد که چگونه می توانیم یک سند را در یک مجموعه mongoDB وارد کنیم.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').insertOne({ Employeeid: 4, EmployeeName: "NewEmployee" }); });
توضیح کد:
- در اینجا ما از روش insertOne از کتابخانه MongoDB استفاده می کنیم تا یک سند را در مجموعه Employee وارد کنیم.
- ما در حال مشخص کردن جزئیات سند راجع به آنچه باید در مجموعه کارمندان وارد شود هستیم. اگر هم اکنون محتویات پایگاه داده MongoDB خود را بررسی کنید ، پرونده را با Employeeid 4 و EmployeeName از “NewEmployee” درج شده در مجموعه Employee پیدا خواهید کرد.
توجه: کنسول هیچ خروجی نشان نمی دهد زیرا رکورد در دیتابیس درج شده است و هیچ خروجی در اینجا قابل نمایش نیست.
برای بررسی اینکه داده ها به درستی در پایگاه داده درج شده است ، باید دستورات زیر را در MongoDB اجرا کنید.
- از EmployeeDB استفاده کنید
- db.Employee.find ({Employeeid}): 4
اولین جمله اطمینان می دهد که شما به پایگاه داده EmployeeDb متصل هستید. جمله دوم سوابق را که دارای شناسه کارمند ۴ است را جستجو می کند.
۵٫ به روزرسانی اسناد در یک مجموعه – اسناد را می توان در یک مجموعه با استفاده از کد updateOne از کتابخانه MongoDB به روز رسانی کرد. قطعه کد زیر نحوه به روزرسانی یک سند در یک مجموعه mongoDB را نشان می دهد.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').updateOne({ "EmployeeName": "NewEmployee" }, { $set: { "EmployeeName": "Mohan" } }); });
توضیح کد:
- در اینجا ما از روش “DeleteOne” از کتابخانه MongoDB استفاده می کنیم ، که برای حذف یک سند در یک مجموعه mongoDB استفاده می شود.
- ما در حال مشخص کردن شرایط جستجو از سندی هستیم که نیاز به حذف دارد. دراین مورد ، ما می خواهیم سندی را پیدا کنیم که دارای “EmployeeName ” از” NewEmployee”باشد و این سند را حذف کنیم.
- سپس می خواهیم مقدار EmployeeName سند را از “NewEmployee” به “Mohan” تنظیم کنیم.
اگر هم اکنون محتویات پایگاه داده MongoDB خود را بررسی کنید ، این پرونده را با Employeeid 4 و EmployeeName از “Mohan” حذف شده از مجموعه Employee پیدا خواهید کرد. برای بررسی اینکه داده ها به درستی در پایگاه داده به روز شده اند ، باید دستورات زیر را در MongoDB اجرا کنید.
- از EmployeeDB استفاده کنید
- ({ db.Employee.find ({Employeeid: 4
اولین جمله اطمینان می دهد که شما به پایگاه داده EmployeeDb متصل هستید. جمله دوم تمام سوابق موجود در مجموعه کارمندان را جستجو و نمایش می دهد. در اینجا می توانید ببینید که آیا رکورد حذف شده است یا خیر.
۶٫ حذف اسناد در یک مجموعه – اسناد را می توان با استفاده از روش “DeleteOne” تهیه شده توسط کتابخانه MongoDB در یک مجموعه حذف کرد. قطعه کد زیر نحوه حذف یک سند در یک مجموعه mongoDB را نشان می دهد.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').deleteOne( { "EmployeeName": "Mohan" } ); });
توضیح کد:
۱٫در اینجا ما از روش “DeleteOne” از کتابخانه MongoDB استفاده می کنیم ، که برای حذف یک سند در یک مجموعه mongoDB استفاده می شود.
۲٫ ما در حال مشخص کردن شرایط جستجو برای حذف سندی هستیم که نیاز به حذف شدن دارد. در این مورد ، ما می خواهیم سندی را پیدا کنیم که دارای EmployeeName ” از “Mohan”باشد و این سند را حذف کنیم.
اگر هم اکنون محتویات پایگاه داده MongoDB خود را بررسی کنید ، این پرونده را با “Employeeid 4 “و EmployeeName “از “Mohan” حذف شده از مجموعه “Employee “پیدا خواهید کرد.برای بررسی اینکه داده ها به درستی در پایگاه داده به روز شده اند ، باید دستورات زیر را در MongoDB اجرا کنید.
۱٫از EmployeeDB استفاده کنید.
۲٫()db.Employee.find
اولین جمله اطمینان می دهد که شما به پایگاه داده EmployeeDb متصل هستید. جمله دوم دوم تمام سوابق موجود در مجموعه کارمندان را جستجو و نمایش می دهد. در اینجا می توانید ببینید که آیا رکورد حذف شده است یا خیر.
ساختن یک برنامه گره اکسپرس با MongoDB برای ذخیره و سرویس محتوا
ساختن یک برنامه کاربردی با ترکیبی از Express و MongoDB امروزه کاملاً رایج است. هنگام کار با برنامه های کاربردی مبتنی بر وب JavaScript ، معمولاً در اینجا اصطلاح MEAN stack وجود دارد.
- اصطلاح MEAN stack به مجموعه ای از فناوریهای مبتنی بر JavaScript است که برای توسعه برنامه های وب استفاده می شود.
- MEAN مخفف MongoDB ، ExpressJS ، AngularJS وNod js می باشد.
از این رو ، همیشه خوب است بدانیم که چگونه Node.js و MongoDB با هم کار می کنند تا برنامه هایی را که با پایگاه داده های پشتیبان تعامل دارند را ارائه دهند.
بیایید به یک مثال ساده از چگونگی استفاده از “express ” و “MongoDB” با هم نگاه کنیم. به عنوان مثال ما از همان مجموعه Employee در پایگاه داده MongoDB EmployeeDB استفاده خواهیم کرد. اکنون Express را برای نمایش داده ها در صفحه وب خود هنگام درخواست کاربر ، وارد می کنیم. هنگامی که برنامه ما روی Node.js اجرا می شود ، ممکن است نیاز به مرور آدرس اینترنتی http: // localhost: 3000 / Employeeid باشد.
با راه اندازی این صفحه ، تمام شناسه کارمند (employee id)موجود در مجموعه Employee نمایش داده می شود. بنابراین بیایید قطعه کد را در بخش هایی مشاهده کنیم که به ما امکان دستیابی به این هدف را می دهد.
مرحله ۱) تمام کتابخانه هایی را که باید در برنامه های ما استفاده شوند تعریف کنید ، که در مورد ما کتابخانه MongoDB و Express است.
توضیح کد:
- ما در حال تعریف کتابخانه ” Express ” خود هستیم که در برنامه ما استفاده خواهد شد.
- ما در حال تعریف کتابخانه ” Express ” خود هستیم که برای اتصال به پایگاه داده MongoDB در برنامه کاربردی ما استفاده می شود.
- در اینجا ما URL پایگاه داده خود را برای اتصال به آن تعریف می کنیم.
- سرانجام ، ما رشته ای را تعریف می کنیم که برای ذخیره کردن مجموعه شناسه کارمندان ما باید بعداً در مرورگر نمایش داده شود ، استفاده می شود.
مرحله ۲) در این مرحله ، اکنون می خواهیم همه سوابق موجود در مجموعه ‘Employee’ خود را بدست آوریم و مطابق با آنها کار کنیم.
توضیح کد:
- ما در حال ایجاد مسیری برای برنامه خود هستیم که “Employeeid” نام دارد. بنابراین هر وقت کسی به http: // localhost: 3000 / Employeeid برنامه ما مراجعه کند ، قطعه کد تعریف شده برای این مسیر اجرا خواهد شد.
- در اینجا ما تمام پرونده های موجود در مجموعه “Employee” خود را از طریق فرمان () db.collection(‘Employee’).findدریافت می کنیم. سپس ما این مجموعه را به متغیری به نام مکان نما اختصاص می دهیم. با استفاده از این متغیر مکان نما ، می توانیم تمام سوابق مجموعه را مرور کنیم.
- اکنون ما از تابع ()cursor.eachبرای حرکت در سوابق مجموعه ما استفاده می کنیم. برای هر رکورد ، ما می خواهیم قطعه کد را تعریف کنیم که هنگام دستیابی به هر رکورد چه کاری باید انجام شود.
- سرانجام ، می بینیم که اگر رکورد برگشتی تهی نیست ، ما “Employee “را از طریق دستور “item.Employeeid” می گیریم. بقیه ی کد فقط ساخت کد HTML مناسب است که به ما اجازه می دهد نتایج ما به درستی در مرورگر نمایش داده شود.
مرحله ۳) در این مرحله ، ما می خواهیم که خروجی خود را به صفحه وب ارسال کنیم و برنامه خود را در پورت خاصی گوش دهیم.
توضیح کد:
- در اینجا ما کل مطالبی را که در مرحله قبل ساخته شده است به صفحه وب ما ارسال می کنیم. پارامتر ‘res’ به ما اجازه می دهد تا به عنوان پاسخ ، مطالب را به صفحه وب خود ارسال کنیم.
- ما در حال ساخت کل برنامه Nod js درپورت ۳۰۰۰ هستیم.
خروجی:
از خروجی ،
- به وضوح نشان می دهد که همه کارمندان ازمجموعه کارمندان بازیابی شدند. دلیل این امر این است که ما از درایور MongoDB برای اتصال به دیتابیس و بازیابی کلیه سوابق Employee استفاده می کنیم و متعاقباً از “Express” برای نمایش رکوردها استفاده می کنیم.
در اینجا کد مرجع شما وجود دارد:
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var cursor = db.collection('Employee').find(); //noinspection JSDeprecatedSymbols cursor.each(function(err, item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }); res.send(str); db.close(); }); }); var server = app.listen(3000, function() {});
توجه: cursor.each ممکن است براساس نسخه درایور MongoDB شما منسوخ شود. برای دور زدن مشکل می توانید // noinspection JSDeprecatedSymbols را قبل از cursor.each اضافه کنید. روش دیگر ، می توانید از ForEach استفاده کنید. در زیر کد نمونه با استفاده از forEach وجود دارد.
var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; var str = ""; app.route('/Employeeid').get(function(req, res) { MongoClient.connect(url, function(err, db) { var collection = db.collection('Employee'); var cursor = collection.find({}); str = ""; cursor.forEach(function(item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }, function(err) { res.send(str); db.close(); } ); }); }); var server = app.listen(8080, function() {});
خلاصه
- Node.jsدر رابطه با پایگاه داده های NoSQL برای ساخت بسیاری از برنامه های وب امروزی مدرن استفاده می شود. برخی از پایگاههای داده رایج مورد استفاده MySQL و MongoDB هستند.
- یکی از ماژول های متداول که برای کار با بانکهای اطلاعاتی MongoDB استفاده می شود ، ماژول ای به نام ‘MongoDB’ است. این ماژول از طریق مدیر بسته Node نصب شده است.
- با استفاده از ماژول MongoDB می توان سوابق مربوط به سوابق موجود در یک مجموعه را پرس و جو کرد و به روزرسانی معمولی ، حذف و درج عملیات را انجام داد.
- درنهایت ، یکی از شیوه های مدرن، استفاده از فریم ورک Express به همراه MongoDB برای ارائه برنامه های امروزی است. فریم ورک Express می تواند از داده های برگرداننده درایور MongoDB استفاده کند و داده ها را در صفحه وب به کاربر نشان دهد.
لیست تمامی جلسات آموزش Node.js
- آموزش Node.js در ۳ روز: آشنایی با Node.js
- آموزش دانلود و نصب Node.js -NPM در ویندوز
- آموزش Node.js در ۳ روز: ایجاد،انتشار،گسترش و مدیریت در Node.js
- آموزش HTTP در Node.js + ایجاد سرور و دریافت داده
- آموزش فریم ورک Express در Node.js در ۱۰ دقیقه
- آموزش promise در برنامه نویسی Node.js
- آموزش تولید promise با کتابخانه BlueBird در Node.js
- آموزش Generators در Node.js و مقایسه با توابع Callbacks
- آموزش جریان داده یا Streams در Node.js : کار با Filestream و Pipes در Node.js
- آموزش تست Node.js با Jasmine
- تفاوت Node.Js و AngulrJS
- تفاوت Node js و Python
- آموزش MongoDB در Node.js
- کتاب آموزش Node.js برای مبتدی ها بصورت کاملا گویا
منبع دوره : https://www.guru99.com/node-js-tutorial.html
The post آموزش MongoDB در Node.js appeared first on آموزش برنامه نویسی - یادگیری برنامه نویسی با طعم سورس باران.