۱۷ دیدگاه نظر علی رضوی
آموزش اتصال جاوا اسکریپت به mysql با Node.js
آموزش اتصال جاوا اسکریپت به mysql  با Node.js

در این مقاله قصد داریم به نحوه‌ی اتصال ماژول Mysql به نود جی اس (Node.js) بپردازیم شما در پایان این مقاله می‌توانید یکی از مهم‌ترین ماژول‌های دیتابیس که Mysql می‌باشد را در نود جی اس (Node.js) استفاده کرده و عملیات CRUD  را انجام بدهید، پس با ما همراه باشید که می‌خواهیم فراتر از آنچه در مورد جاوا اسکریپت می‌دانستیم عمل کنیم.

اگر شما هم به مباحث Node.Js علاقه مندید و دوست دارید در این حوزه از برنامه نویسی حرفه ای شوید پیشنهاد می‌کنیم در دوره آموزش node js پروژه محور سون لرن شرکت کنید

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 همه فن حریف تبدیل می‌شوی که آماده‌ی استخدام، دریافت پروژه و یا فول-استک شدن هستی.
۱۷ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم
Abolfazl ۳۰ شهریور ۱۴۰۲، ۱۳:۳۳

سلام در هنگام اتصال به وسیله 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

۰۲ اردیبهشت ۱۴۰۲، ۱۸:۳۳

touch app.js خطا میدهد 'touch' is not recognized as an internal or external command, operable program or batch file.

نازنین کریمی مقدم ۰۴ اردیبهشت ۱۴۰۲، ۱۷:۲۷

درود <a href="https://stackoverflow.com/questions/36126269/touch-is-not-recognized-as-an-internal-or-external-command-operable-program-o" target="_blank" rel="noopener nofollow ugc">این تاپیک</a> استک رو بررسی کنید.

۱۷ اردیبهشت ۱۴۰۱، ۱۷:۳۶

ممنون از اطلاعاتی که گذاشتین حالا چطور میشه از این اتصال انجام شده استفاده کنم برای نمایش اطلاعات در وب سایتم نه در کنسول

نازنین کریمی مقدم ۱۸ اردیبهشت ۱۴۰۱، ۰۷:۴۵

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

علیرضا ۲۸ اردیبهشت ۱۴۰۰، ۰۵:۵۰

سلام علیکم میخواستم بدونم چجوری میشه خود جاوااسکریپت رو به جای nosql به mysql متصل کرد بدون nodejs

نازنین کریمی مقدم ۲۹ اردیبهشت ۱۴۰۰، ۱۵:۰۱

درود تا جایی که بنده اطلاع دارم جاوا اسکریپت نمیتونه مستقیما به MySQL وصل بشه. جاوا اسکریپت یک زبان سمت کلاینت هست و MySQL سمت سرور شماست، شما در هر حال نیاز به یک واسط برای اتصال این دو دارید. به دلیل موارد امنیتی و راحتی کار بهتره که این اتصال با Node.js انجام بشه اما اگر بخواید از Node استفاده نکنید، میتونید جاوا اسکریپت رو با PHP ترکیب کنید.

حسین ۰۱ بهمن ۱۳۹۹، ۱۰:۰۸

سلام عالی بود وقط یه سوال چطور میشه کد‌های مربوط به اتصال به دیتابیس رو توی یه فایل دیگه نوشت و اون رو اینکلود یا ایمپورت کرد داخل کد‌های اصلی تا یوزر و پسورد اتصال به پایگاه از داخل کد‌های اصلی دیده نشن [code] const mysql=require("mysql"); const con=mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'database name' }); con.connect((err) =&gt; { if (err) throw err; console.log('Connected!'); }); [/code] اینا رو

نازنین کریمی مقدم ۰۱ بهمن ۱۳۹۹، ۱۳:۳۷

درود. شما برای اینکار میتونید به بخش کار با فایل مقاله <a href="https://7learn.com/blog/node-js-tutorial" rel="noopener" target="_blank">آموزش node.js</a> مراجعه کنید. یک راهکار هم <a href="https://blog.logrocket.com/building-a-password-hasher-in-node-js/" target="_blank" rel="noopener nofollow ugc">استفاده از hash</a> هست که در صورت تمایل میتونید ازش استفاده کنید.

ناشناس ۲۷ آبان ۱۳۹۹، ۱۳:۴۰

سلام ممنون از زحمات مفید شما کد touch app.js مربوط به چه محیط یست چون دستور touch شناسائی نمیشه همینطور دستور ایجاد دیتا بیس در چه محیطی باید اجرا شود مeلا در NodeJS?

نازنین کریمی مقدم ۲۷ آبان ۱۳۹۹، ۱۳:۴۹

سلام. دستور touch مربوط به یونیکس میشه. شما باید روی ویندوز با npm نصبش کنید تا بتونید استفاده کنید. یا دستی فایل رو بسازید یا از گزینه‌های کار با فایل که در مقاله <a href="https://7learn.com/programming/javascript/node-js-tutorial" rel="noopener noreferrer" target="_blank">آموزش مقدماتی node.js </a>توضیح دادیم استفاده کنید. درمورد سوال دومتون، باید وارد رابط کاربری دیتابیس که معمولا Phpmyadmin هست بشید و دستور رو وارد کنید.

مهسا ۱۹ مهر ۱۳۹۹، ۱۲:۵۲

سلام. ممنون از مقاله خوبتون. کد nodemon app.js رو باید کجا بنویسم؟

نازنین کریمی مقدم ۲۰ مهر ۱۳۹۹، ۰۷:۳۵

سلام. در ترمینال خودتون باید بنویسید. مثلا در ویندوز با باز کردن شل از منوی فایل، میتونید این دستور رو وارد کنید.

امیرحسین ۱۱ شهریور ۱۳۹۹، ۰۹:۴۶

سلام عالی بود ! فقط تو بخش اتصال به پایگاه داده connection نباید استفاده می‌شد ! چون ما connection رو تعریف نکردیم (con رو تعریف کردیم) ??

شیوا وکیلی ۲۲ شهریور ۱۳۹۹، ۱۱:۲۵

سلام ممنونم از توجه شما؛ موردی که گفتید اصلاح شد و خوشحالم از اینکه این مقاله براتون مفیدبوده است.

محسن ۲۷ اسفند ۱۳۹۸، ۲۰:۴۳

مرسی علی جان. مقاله ت عالی بود

  • Mysql چیست؟
  • چگونگی نصب نود جی اس (Node.js) بر روی سیستم عامل
  • چگونگی نصب Npm  بر روی سیستم عامل شما:
  • راه‌اندازی محیط کاری مدنظر برای ایجاد پروژه‌ی نود جی اس (Node.js):
  • ساخت یک دیتابیس در Mysql:
  • نحوه‌ی اتصال به ماژول Mysql  با نود جی اس (Node.js):
  • نحوه‌ی نمایش اطلاعات جدول دیتابیس به کمک نود جی اس (Node.js):
اشتراک گذاری مقاله در :