در این مقاله قصد داریم به نحوه ی اتصال ماژول Mysql به نود جی اس (Node.js) بپردازیم شما در پایان این مقاله می توانید یکی از مهم ترین ماژول های دیتابیس که Mysql می باشد را در نود جی اس (Node.js) استفاده کرده و عملیات CRUD را انجام بدهید، پس با ما همراه باشید که می خواهیم فراتر از آنچه در مورد جاوا اسکریپت می دانستیم عمل کنیم.
[note] اگر شما هم به مباحث Node.Js علاقه مندید و دوست دارید در این حوزه از برنامه نویسی حرفه ای شوید پیشنهاد می کنیم در دوره آموزش node js پروژه محور سون لرن شرکت کنید [/note]
Mysql چیست؟
MySQL یک سیستم مدیریت دیتابیس است که با استفاده از آن ، می توانیم یک دیتابیس بسازیم و آن را مدیریت کنیم.
که در انگلیسی به آن Database Management System یا به اختصار DBMS نیز می گویند.
در ادامه یک دیتابیس Mysql رو به نود جی اس (Node.js) متصل کرده و اطلاعات خود را نمایش می دهیم.
چگونگی نصب نود جی اس (Node.js) بر روی سیستم عامل
برای نصب نود جی اس (Node.js) ابتدا وارد وب سایت نود جی اس (Node.js) می شویم. وقتی وارد وب سایت شدیم با دو نسخه از نود جی اس (Node.js) مواجه خواهیم شد، LTS مخفف Long Term Support می باشد که نسخه ی Stable نود جی اس (Node.js) است و دیگری نسخه ی Current می باشد که آخرین نسخه نود جی اس (Node.js) می باشد ما برای اینکه می خواهیم در حالت Stable کد نویسی کنیم و نگران باگ های هسته نود جی اس (Node.js) نشویم نسخه LTS را دانلود و نصب می کنیم.
در ادامه با چند Next ساده می توانیم به نصب نود جی اس (Node.js) پایان بدهیم.
وارد ترمینال خود شده و عبارت زیر را وارد کنید تا نسخه ی نصبی نود جی اس (Node.js) بر روی سیستم عامل شما نمایش داده شود.
node -vشما توانستید نود جی اس (Node.js) را به راحتی بر روی سیستم عامل خود نصب کنید.
حال باید پکیج منیجری (package manager) به نام Npm را نصب نمائید.
چگونگی نصب Npm بر روی سیستم عامل شما:
بعد از نصب نود جی اس (Node.js) به این پکیج دسترسی دارید و به راحتی می توانید از این پکیج استفاده کنید. برای مطمئن شدن از نصب این پکیج منیجر (package manager) وارد ترمینال خود شوید و عبارت زیر را تایپ نمایید، تا ورژن نصب شده ی Npm بر روی سیستم عامل شما را نمایش دهد.
npm -vراه اندازی محیط کاری مدنظر برای ایجاد پروژه ی نود جی اس (Node.js):
وارد ترمینال خود شوید و دستور زیر را تایپ نمایید. تا یک دایرکتوری به نام Node-js-app در مسیر Desktop ساخته شود.
mkdir Node-js-appسپس وارد دایرکتوری پروژه شوید.
cd Node-js-appبرای شروع کار باید دستور زیر را تایپ کرده تا بتوانیم از پکیج منیجر Npm استفاده کنیم.
npm init -yبا همین روش می توانیم هر نوع پکیجی که در وب سایت Npm وجود دارد را نصب کنیم. اولین پکیجی که نیاز داریم پکیج محبوب Nodemon است که به راحتی می توانیم فایل مدنظرمان را به کمک این پکیج اجرا کنیم پس دستور زیر را تایپ می کنیم.
npm install --save-dev nodemonلازم به ذکر است برای اجرا شدن این دستور ابتدا باید دستور زیر را تایپ کنیم.
npm install -g nodemonما برای استفاده از پکیج Mysql داخل پروژه به نصب این پکیج نیاز داریم. دستور زیر را وارد می کنیم:
npm install --save-dev mysqlسپس یک فایل با نام دلخواه ، برای مثال app.js را ایجاد می کنیم. این فایل به عنوان هسته ی مرکزی برنامه می باشد . برای این کار دستور زیر را وارد می کنیم:
touch app.jsبرای نوشتن کد نیاز به یک کد ادیتور قدرت مند داریم که ما نرم افزار Vs code را پیشنهاد می کنیم .
ساخت یک دیتابیس در Mysql:
وارد رابط کاربری خود Phpmyadmin یا هر نوع رابط کاربری مدنظر شوید و دستور زیر را وارد کنید یا به صورت دستی یک دیتابیس درست کنید.
CREATE DATABASE slearn_db CHARACTER SET utf8 COLLATE utf8_general_ci;
USE slearn_db;با رعایت قوانین نام گذاری اسم دیتابیس خود را تعیین کنید ما در اینجا اسم دیتابیس را slearn_db گذاشتیم.
قوانین نام گذاری پایگاه داده:
1- استفاده از نام های جمع: در نام گذاری پایگاه داده بهتر است از نام های جمع استفاده کنید برای مثال users به user برتری دارد. 2- جداکردن کلمه ها : برای جداکردن کلمه ها دو روش متداول وجود دارد. روش اول استفاده از PascalCase می باشد یعنی حروف اول هر کلمه بصورت حروف بزرگ باشد (برای مثال : UserDatabase). روش دیگر استفاده از حروف کوچک و جدا کردن کلمه ها با کمک زیر خط (Under Line) از یکدیگر است. (برای مثال : User_db). 3- پیشوند و پسوندها: استفاده از پیشوندها و پسوندها باعث طولانی شدن و کاهش خوانایی نام ها می شوند ولی در صورت لزوم، استفاده از پسوند بر پیشوند برتری دارد. استفاده از نام Schema یا Namespace به عنوان پیشوند جدول ها می تواند نیازهای گروه بندی جدول ها را برطرف نماید. چنانچه پایگاه داده از Namespace ها پشتیبانی نمی کند، می توان از پیشوندی کوتاه و جداشده با زیرخط استفاده نمود. برای ساخت جدول دستور زیر را وارد نمایید ما در اینجا جدولی به نام users با فیلد های id ,name ,city ساخته ایم.
CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50), city varchar(50), PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; سپس اطلاعاتی فرضی را با دستور زیر وارد نمایید.
INSERT INTO users(id, name, city) VALUES (1, 'Ali', 'Yazd'), (2, 'Loghman', 'Tehran'), (3, 'Sara', 'Shiraz'), (4, 'Mohammad', 'Karaj');نحوه ی اتصال به ماژول Mysql با نود جی اس (Node.js):
وارد ادیتور خود می شویم و پروژه ایی که باهم ساختیم را باز می کنیم .
سپس وارد فایل app.js می شویم و کد زیر را می نویسیم:
const mysql=require("mysql");
const con=mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'database name'
});برای فراخوانی ماژول Mysql از روش require استفاده می کنیم و در درون یک متغییر به نام con ذخیره می کنیم.
و مقادیر host ,user ,password ,dataBase را وارد می کنیم .
سپس برای اتصال به دیتابیس کد زیر را تایپ می کنیم:
con.connect((err) => {
if (err) throw err;
console.log('Connected!');
});برای اجرای برنامه نود جی اس (Node.js) باید دستور زیر را وارد کنیم.
nodemon app.jsاگر پیغام !Connected رو دریافت کردید شما توانسته اید به دیتابیس متصل شوید.
نحوه ی نمایش اطلاعات جدول دیتابیس به کمک نود جی اس (Node.js):
برای گرفتن اطلاعات از جدول مدنظر باید کد زیر را در فایل app.js بنویسید.
con.query('SELECT * FROM users', (err,rows) => {
if(err) throw err;
console.log('Data received from Db:');
console.log(rows);
});به کمک دستور SELECT در SQL می توانیم عملیات read رو انجام بدهیم .
به همین راحتی توانستیم به کمک نود جی اس (Node.js) اطلاعات یک جدول را خوانده و نمایش بدهیم.
جمع بندی
به کمک نود جی اس (Node.js) می توانیم جاوا اسکریپت را سمت سرور اجرا کرده و به سرور متصل شویم و می توانیم از ماژول های بسیاری که در سایت Npm وجود دارد استفاده کنیم و بدون هیچ مشکلی فقط به فکر توسعه app خود باشیم. در مقاله ی بعد نحوه ی اتصال نودجی اس (Node.js) به دیتابیس MongoDb را آموزش می دهیم.
با شرکت در دوره آموزش جاوا اسکریپت در کمتر از یکسال به یک متخصص JS همه فن حریف تبدیل می شوی که آماده ی استخدام، دریافت پروژه و یا فول-استک شدن هستی.
مرسی علی جان. مقاله ت عالی بود
سلام عالی بود ! فقط تو بخش اتصال به پایگاه داده connection نباید استفاده می شد ! چون ما connection رو تعریف نکردیم (con رو تعریف کردیم) ??
سلام ممنونم از توجه شما؛ موردی که گفتید اصلاح شد و خوشحالم از اینکه این مقاله براتون مفیدبوده است.
سلام. ممنون از مقاله خوبتون.
کد nodemon app.js رو باید کجا بنویسم؟
سلام. در ترمینال خودتون باید بنویسید.
مثلا در ویندوز با باز کردن شل از منوی فایل، میتونید این دستور رو وارد کنید.
سلام ممنون از زحمات مفید شما
کد touch app.js مربوط به چه محیط یست چون دستور touch شناسائی نمیشه
همینطور دستور ایجاد دیتا بیس در چه محیطی باید اجرا شود مeلا در NodeJS?
سلام.
دستور touch مربوط به یونیکس میشه. شما باید روی ویندوز با npm نصبش کنید تا بتونید استفاده کنید. یا دستی فایل رو بسازید یا از گزینه های کار با فایل که در مقاله آموزش مقدماتی node.js توضیح دادیم استفاده کنید.
درمورد سوال دومتون، باید وارد رابط کاربری دیتابیس که معمولا Phpmyadmin هست بشید و دستور رو وارد کنید.
سلام عالی بود
وقط یه سوال چطور میشه کد های مربوط به اتصال به دیتابیس رو توی یه فایل دیگه نوشت و اون رو اینکلود یا ایمپورت کرد داخل کد های اصلی تا یوزر و پسورد اتصال به پایگاه از داخل کد های اصلی دیده نشن
[code]
const mysql=require("mysql");
const con=mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'database name'
});
con.connect((err) => {
if (err) throw err;
console.log('Connected!');
});
[/code]
اینا رو
درود.
شما برای اینکار میتونید به بخش کار با فایل مقاله آموزش node.js مراجعه کنید.
یک راهکار هم استفاده از hash هست که در صورت تمایل میتونید ازش استفاده کنید.
سلام علیکم
میخواستم بدونم چجوری میشه خود جاوااسکریپت رو به جای nosql به mysql متصل کرد بدون nodejs
درود
تا جایی که بنده اطلاع دارم جاوا اسکریپت نمیتونه مستقیما به MySQL وصل بشه. جاوا اسکریپت یک زبان سمت کلاینت هست و MySQL سمت سرور شماست، شما در هر حال نیاز به یک واسط برای اتصال این دو دارید. به دلیل موارد امنیتی و راحتی کار بهتره که این اتصال با Node.js انجام بشه اما اگر بخواید از Node استفاده نکنید، میتونید جاوا اسکریپت رو با PHP ترکیب کنید.
ممنون از اطلاعاتی که گذاشتین
حالا چطور میشه از این اتصال انجام شده استفاده کنم برای نمایش اطلاعات در وب سایتم نه در کنسول
درود
جواب سوالتون در قالب کامنت نمیگنجه اما به طور مختصر میتونم بگم که باید با استفاده از المانهای دکمه، اینپوت و... در html، اطلاعات رو در صفحه نشون بدید.
پیشنهاد میکنم یه دوره مختصر از جاوا اسکریپت ببینید تا با روند کار آشنا بشید.
touch app.js
خطا میدهد
'touch' is not recognized as an internal or external command,
operable program or batch file.
درود
این تاپیک استک رو بررسی کنید.
سلام در هنگام اتصال به وسیله nodemon در node.js به این خطا می خورم میشه راهنمایی کنید ممنون
Error: connect ECONNREFUSED 127.0.0.1
درود
براساس تاپیک زیر، کافیه آدرس رو به از localhost به ۱۲۷.۰.۰.۱ تغییر بدید:
https://stackoverflow.com/questions/48545919/visual-studio-code-nodemon-econnrefused-after-10-s-of-debugging