ساخت سرور با استفاده از ماژول HTTP - بخش ششم
سه شنبه, ۴ تیر ۱۳۹۸، ۱۲:۵۷ ق.ظ
درود;
از این قسمت به بعد عملا وارد برنامه نویسی می شیم ! اولین کاریم که باید بکنیم اینه که با استفاده از ماژول درونی HTTP یک سرور ایجاد کنیم.
به قسمت ششم آموزش nodejs خوش اومدید!!
خب ماژول HTTP برای ما یک سرور می سازه که قابلیت اینو داره که درخواست ها رو بگیره و بهشون جواب بده و یه سری کار های دیگه!
خب برای شروع لطف کنین و این ماژول رو فراخوانی کنید:
1 |
var http = require("http") ; |
1 2 3 |
http.createServer(function(req,res){ }) |
خب احتمالا می دونید که به جای req و res هر چیزی که خودتو دوست دارید می تونید بزارید.
بزارید برای اینکه شروع کنیم برنامه بنویسیم که وقتی سرور ما ایجاد شد به ما اطلاع بده . ما اینکار رو با استفاده از ()console.log انجام می دیم. پیام این تایع توی ترمینالتون نمایش داده میشه پس :
1 2 3 |
http.createServer(function(req,res){ console.log('vasl shodi!'); }); |
خب اگه به ترمینال نگاه کنید پیام می بینید.
ولی ما دوست نداریم که به کاربرمون اینرو نشون بدیم ! بلکه کاربر در اصل با استفاده از مرورگر به سایت متصل میشه پس ما باید بتونیم که توی مرورگر بهش جواب بدیم . این جواب ما می تونه هدایت کاربر به یک صفحه ی Html باشه و یا یک متن ساده . بزارید با ارسال یک متن شروع کنیم :
1 2 3 4 |
http.createServer(function(req,res){ console.log('vasl shodi!'); res.end('khosh oomadi!'); }); |
ولی می تونید متنی هم با استفاده از اون بفرستید. میتونید اینکار رو با استفاده از یه تابع دیگه هم انجام بدید.
1 2 3 4 5 |
http.createServer(function(req,res){ console.log('vasl shodi!'); res.write('khosh oomadi!'); res.end() }); |
خیلی خب کجا بریم نتیجه کارم رو ببینیم؟
اول باید برنامتون رو اجرا کنید . چطوری ؟ توضی دادیم ولی یه بار دیگه هم میگم کد ها رو توی فایلی مثلا به اسم app.js ذخیره کنید و بعد در داحل ترمینال بزنید:
node app.js
همین برنامه اجرا میشه. خب طبیعتا شما نمی تونید نتیجه رو ببینید چون نتیجه نه توی اینجا بلکه توسط مرورگر بهتون داده میشه ! مرورگرتون رو باز کنید.خب دقت کنید آدرسی که سرور های ما توش بارگذاری میشن اینه : http://localhost
خب یعنی هاست محلی ، اسمش به کارش میاد!
خب برید به این آدرس . متاسفانه می بینید که اتفاقی نمی افته. میخوام یه نکته رو اینجا بهتون بگم.
سرور node چطوری کار می کنه ؟
ببنید روند کار اینجوریه که برنامه ای که می نویسید منتظر شما می مونه ! یعنی چی یعنی شما با استفاده از terminal برنامتون رو اجرا می کنید بعد برنامه منتظر می مونه تا شما با استفاده از مرورگر بهش درخواست بدید بعد کارهایی رو که تعریف کردید انجام میده.
خب الان باید شما با مفهومی به اسم پورت آشنا بشین . دانشگاهی براتون تعریف نمی کنم! در نظر بگیرید هر پروت مثل یه در میمونه . دری که پلاک روشه . کاربری که با برنامه ی کار داره باید بیاد در خونه ی مارو بزنه . کاربر از کجا می دونه کدوم درو بزنه با استفاده از شماره ای که بهش می دیم. خب پس بیاید و بهش یه شماره بدید تا بشینه و منتظر درخواست بمونه :
1 2 3 4 5 |
http.createServer(function(req,res){ console.log('vasl shodi!'); res.write('khosh oomadi!'); res.end() }).listen(3000) |
ولی ()listen بهش میگه که باید منتظردرخواست کاربر بمونی، کجا ؟ روی پورت 3000;
خب حالا توی مرورگرتون به این آدرس برید : http://localhost:3000
بعد از قسمت اصلی « : » بزارید و بعد شماره ی پورت رو بزارید.
توی سایت واقعی آدرستون این شکلی نمی شه نگران نباشید!
سیستم کاریه node اینجوریه ! یه برنامه رو باز می کنید و دیگه نمی بندیش . اون برنامه همواره منتظر درخواست میمونه .
شماره پورت تقریبا دلبخواهیه!