در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

node js قسمت سوم

با سلام مجدد و عرض پوزش بابت تاخیر زیاد در فاصله بین قسمت های آموزشی (گرفتاری زیاده :| ) همون طور که در انتهای آموزش قسمت قبلی گفته شد در این قسمت قراره درخواست های ارسالی رو بررسی بکنیم و برای هر در خواست قالب مناسب خودش رو تعیین کنیم ، خب شروع با فایل server.js می کنیم و در اولین مرحله نیاز داریم که سرور http رو راه اندازی بکنیم طبق کد زیر

http = require('http');
var port = 8888 ;
http.createServer(function (request, response) {

   response.writeHead(200, {'Content-Type': 'text/plain'});
   response.end('Hello World\n');
   
}).listen(port);


console.log('Server running on port : '+port);

این کد روی پورت 8888 سرور ما رو ایجاد می کنه ، کد بالا رو در قسمت قبلی کاملا توضیح دادیم که روند کارش به چه صورت هست به جز خط آخر در محیط CMD برای ما گزارش میده که سرور روی پورت مورد نظر ایجاد شد.حالا قراره یک سری تغییراتی بدیم که بتونیم درخواست هایی رو که به سرور ما ارسال میشه رو بررسی بکنیم و در صورت نیاز برای هر درخواست که مد نظرمون هست پاسخ مناسب به اون رو ارسال کنیم

var http = require('http');
var fs = require('fs');
var url = require('url');

var port = 8888 ;

http.createServer( function (request, response) {
   
   var pathname = url.parse(request.url).pathname;
   pathname=pathname.substr(1);
   
   console.log("Request for " + pathname + " received.");
   
   
   fs.readFile(pathname+".html", function (err, data) {
     
      if (err) {
        
         console.log(err);
         response.writeHead(404, {'Content-Type': 'text/html'});
         response.write("Not Found");
         
      }else{
         
         response.writeHead(200, {'Content-Type': 'text/html'});
         response.write(data.toString());
         
      }
    
      response.end();
   });
}).listen(port);


console.log('Server running on port : '+port);

در فایل server.js کد بالا رو با قبلی جایگزین کنید حالا شروع می کنیم به بررسی قطعه کد بالا دو ماژول جدید به کد مون اضافه کردیم fs و url که ماژول fs مخفف file system هست و برای خواندن فایل استفاده میشه و ماژول url برای ادرس و به بیان دقیق تر برای گرفتن آدرس درخواست هایی هست که به سرور ارسال میشه سطر بعدی که پورت مورد نظرمون رو در متغییری تعریف کردیم و سطر بعدی هم شروع می کنیم که سرور HTTP رو ایجاد کنیم در سطر بعدی ما با استفاده از ماژول url آدرسی رو که وارد شده در مرورگر رو می گیریم و در متغییر pathname ذخیره می کنیم ، برای مثال ما روی پورت 8888 فایل رو اجرا می کنیم توی مرور گر آدرس زیر رو وارد می کنیم

127.0.0.1:8888/aboutus

در متغییر pathname عبارت aboutus// ذخیره میشه ، در سطر بعدی هم با استفاده از تابع substr کاراکتر // رو از ابتدای متغییر حذف می کنیم ، در سطر بعدی آدرس رو در خروجی یا همون CMD چاپ می کنیم (به عنوان گزارش که بدونیم برنامه ما در کدوم مرحله به چه صورت کار میکنه ) حالا ما آدرس رو در اختیار داریم و می دونیم که کاربر چه درخواستی رو برای ما ارسال کرده ، با استفاده از ماژول file system ما برای هر درخواست فایل مورد نظر رو که محتوای اون صفحه رو در اختیاره داره ، از سیستم فراخوانی می کنیم و در صورت نبود فایل یا به عبارتی نبود صفحه مورد نظر خطای 404 رو با عبارت دلخواهی به کاربر ارسال می کنیم

در سطر بعدی ما با استفاده از ماژول fs تابع readfile رو با دو پارامتر فراخوانی می کنیم که اولی اسم فایل هست و پارامتر دوم یک تابع بازگشتی هست که لعد از اجرای تابع readfile این تابع با دو پارامتر err , data اجرا میشه که متغییر err خطایی هست که به هنگام خواندن فایل ممکن هست رخ بده و متغییر data در صورت نبود خطا محتوای خوانده شده فایل هست. (در مورد تابع بازگشتی در قسمت قبلی کاملا توضیح داده شد که به چه صورت هست) در سطر بعدی ما ابتدا بررسی می کنیم که خطایی رخ داده هست یا نه اگر خطایی رخ داده باشه خطا رو در خروجی چاپ می کنیم و وضعیت هدر پاسخ HTTP رو مقدار 404 که همون خطای NOT FOUND هست قرار میدیم و به دلخواه عبارتی رو هم برای کاربر چاپ می کنیم که آدرس درخواستی شما پیدا نشد. حال در غیر این صورت (اگر فایل مورد نظر بود و خطایی رخ نداد ) محتوای اون فایل رو در پاسخ به درخواست قرار می دیم و پاسخ رو به کاربر می فرستیم. در همون محلی که فایل server.js قرار داره فایلی به نام aboutus.html ایجاد کنید و درون فایل محتوای دلخواهی قرار بدین. حال از طریق CMD کد زیر رو اجرا کنید تا برنامه اجرا بشه

nodejs server.js

مرورگر رو باز کنید و آدرس

127.0.0.1:8888/aboutus

رو وارد کنید ، خواهید دید که محتوای فایل aboutus.html در پاسخ به درخواست aboutus در مرور گر نمایش داده شد.حال نکته ای که قابل توجه اینه که ما وقتی آدرس 127.0.0.1:8888 رو وارد می کنیم انتظارمون بر این هست که صفحه اولی برای برنامه و یا سایت ما نمایش داده بشه که خطای 404 رو برای ما میده دلیل این مورد این هست که ما وقتی 127.0.0.1:8888 رو وارد می کنیم مقدار خالی در متغییر pathname ذخیره میشه و برنامه در سیستم به دنبال فایلی میگرده که به صورت html. هست یعنی هیچ اسمی نداره و فرمت اون به صورت html هست برای حل این مورد یک خط کد بعد از کد زیر به فایل server.js اضافه می کنیم

console.log("Request for " + pathname + " received.");
   
   if (pathname=="") pathname="home";

این کدی که قرار دادیم زمانی که بررسی می کنه زمانی که آدرس وارد شده در مرورگر به صورت 127.0.0.1:8888 بود یه به عبارتی زمانی که مقدار موجود در متغییر pathname برابر خالی بود مقدار home رو در pathname جایگذاری میکنه ، حال ما فایلی به نام home.html ایجاد می کنیم و متحوای دلخواه مون رو درون اون قرار میدیم و دوباره از طریق CMD فایل server.js رو اجرا می کنیم ، هر سوالی داشتین بپرسین

دریافت فایل های مرتبط با این آموزش


موفق باشید.

پایان قسمت سوم


نویسنده : فرهاد مهریاری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#آموزش_nodejs #برنامه_نویسی_تحت_وب #nodejs_چیست #آموزش_nodejs_قسمت_سوم #آموزش_برنامه_نویسی_وب #آموزش_node.js
عنوان
1 آموزش node js قسمت اول رایگان
2 آموزش node js قسمت دوم رایگان
3 node js قسمت سوم رایگان
4 node js و npm شروع کار رایگان
5 nodejs و express js | معرفی رایگان
6 nodejs , express js توسعه برنامه تحت وب رایگان
زمان و قیمت کل 0″ 0
2 نظر
محمد نصیری

یعنی فرهاد جان این بازگشتی که تو داشتی خیلی باحال بود ... D: خیلی عالی بود ... همینکه ادامه دادی عالیه ...

فرهاد مهریاری

خیلی خیلی ممنونم - قطار ITPRO هیچ وقت متوقف نمیشه :)

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....