page loader

ساخت وب سرور با استفاده از نود جی اس

دسامبر 14, 2017
| | |
اشتراک گذاری:

در این آموزش قصد داریم یک وب سرور HTTP ساده با استفاده از Node.JS ایجاد کنیم. توجه داشته باشید که این پست برای آنهایی که تازه با Node آشنا شده اند مفید است، و برای کاربران با تجربه توصیه نمی شود.

Node یک کاندید فوق العاده برای ساخت وب سرور است، که بسیار سبک است و می تواند چندین درخواست همزمان را اداره کند. این به این معنی است که اگر شما علاقه مند به یادگیری ساخت برنامه های وب هستید، این پست یک راهنما خوب است.

[php]
// Lets require/import the HTTP module
var http = require(‘http’);

// Lets define a port we want to listen to
const PORT=3000

// We need a function which handles requests and send response
function handleRequest(req, res) {
res.end(‘It Works – ‘ + req.url);
}

// Create a server
var server = http.createServer(handleRequest);

// Lets start our server
server.listen(PORT, function() {
// Callback triggered when server is successfully listening. Hurray!
console.log("Server listening on: http://localhost:%s", PORT);
});
[/php]

حال برای دیدن سحر و جادو Node، به سادگی سرور خود را با اجرا فایل myFirstHTTPServer.js اجرا کنید. برای این کار به ترمینال خود رفته و دستور زیر را در برنامه خود وارد کنید:

[php]

$ node myFirstHTTPServer.js
Server listening on: http://localhost:3000
$ node myFirstHTTPServer.js
Server listening on: http://localhost:3000
[/php]

حال از طریق مرورگر خود به آدرس http://localhost:3000 رفته تا در خروجی به ما پیغامی را نشان دهد. برای تست، آدرس های مختلفی را در URL خود وارد کنید تا پیام نمایش داده شود.

 تجزیه و تحلیل برنامه فوق

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

بارگذاری ماژول http

Node.js دارای ماژول هایی درون هسته خود است، که اجازه می دهد سرورهای http و https را درست کنیم. از این رو برای ایجاد سرور HTTP در برنامه بالا، باید ماژول http را به برنامه خود اضافه (import) کنیم.

 

[php]

// Lets require/import the HTTP module
var http = require(‘http’);

[/php]

تعریف تابع راه انداز

ما به تابعی احتیاج داریم که مسئولیت رسیدگی به تمام درخواست ها و پاسخ را داشته باشد. این مرحله ای است که شما می توانید درخواست ها را پاسخ دهید.

[php]

// We need a function which handles requests and send response
function handleRequest(req, res) {
res.end(‘It Works – ‘ + req.url);
}
[/php]

 

ایجاد و راه اندازی سرور

در اینجا ما یک شیء http سرور جدید ایجاد کرده ایم و از آن خواسته ایم که به یک پورت گوش فرا دهید تا بتواند به درخواست ها پاسخ دهد. از متد createServer برای ایجاد یک نمونه جدید از سرور و قبول کردن تابع راه انداز (handleRequest) به عنوان آرگومان استفاده شده است. آنگاه برای شروع متدlisten را فراخوانی کرده ایم.

 

[php]

// Create a server
var server = http.createServer(handleRequest);

// Lets start our server
server.listen(PORT, function() {
// Callback triggered when server is successfully listening. Hurray!
console.log("Server listening on: http://localhost:%s", PORT);
});
[/php]

موارد پیشرفته

حال که ما یک سرور HTTP ساده در حال اجرا داریم، زمان آن است که با برخی از قابلیت های واقعی پیاده سازی شده آشنا شویم. سرور شما می تواند به مسیرهای مختلف URL پاسخ دهد. این به این معنی است که به یک توزیع کننده نیاز داریم. توزیع کننده یک نوع روتر می باشد که کمک می کند کد مربوط به آن آدرس URL خاص فراخوانی شود. برای این کار اجازه دهید این توزیع کننده را به برنامه خود اضافه کنیم. ابتدا ما باید ماژول httpdispatcher را نصب کنیم، البته که ماژول های پیشرفته ای در این رابطه وجود دارد، اما در این مورد اجازه دهید فقط از پایه ترین آنها جهت تست استفاده کنیم:

 

[php]
$ npm install httpdispatcher
httpdispatcher@0.4.0 node_modules\httpdispatcher
└── mime@1.3.4
[/php]

 

اگر با npm آشنا نیستید، باید گفت که npm ابزاری برای مدیریت بسته ها است که یک مخزن مرکزی برای ماژول های سفارشی منبع باز برای Node.js و JavaScript ارائه می دهد. npm باعث می شود مدیریت نسخه ها و توزیع ها به راحتی انجام شود. شاید در اینجا لازم باشد که بگویم، دستور npm install ماژول ها لازم برای اجرا پروژه ما را نصب می کند.

 

حال ما dispatcher را با دستور require به برنامه خود اضافه می کنیم، آن را در بالاترین نقطه از کد خود قرار دهید:

 

[php]

var dispatcher = require(‘httpdispatcher’);
[/php]

 

حال اجازه دهید از dispatcher خود در تابع handleRequest استفاده کنیم:

 

[php]

//Lets use our dispatcher
function handleRequest(request, response){
try {
//log the request on console
console.log(request.url);
//Disptach
dispatcher.dispatch(request, response);
} catch(err) {
console.log(err);
}
}
[/php]

حال بیایید تعدادی مسیر یا route تعریف کنیم. تعریف route باعث می شود که وقتی به آدرسی مشخص در مرورگر خود وارد می کنیم (مثل /about یا /contact) عملی خاص در آن URL خاص انجام شود.

 

[php]

//For all your static (js/css/images/etc.) set the directory name (relative path).
dispatcher.setStatic(‘resources’);

//A sample GET request
dispatcher.onGet("/page1", function(req, res) {
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
res.end(‘Page One’);
});

//A sample POST request
dispatcher.onPost("/post1", function(req, res) {
res.writeHead(200, {‘Content-Type’: ‘text/plain’});
res.end(‘Got Post Data’);
});<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
[/php]

 

حال برنامه بالا را اجرا کنید و مسیرهای URL زیر را برای تست وارد کنید:

GET /page1
POST /page2
GET /page3
GET /resources/images-that-exists.png
GET /resources/images-that-does-not-exists.png

شما می توانید در مرورگر خود یک درخواست GET را به سادگی با وارد کردن URL در مرورگر خود انجام دهید، ولی شاید این سوال پیش آید که چطور درخواست POST انجام دهیم، نگران نباشید این کار را با ابزاری مثل Postman می شود انجام داد.

 

تبریک می گویم 🙂 حال شما توانستید یک سرور HTTP ساده راه اندازی کنید.

 

در: node.js برچسب ها: دیتا بیس, سرور, نود جی اس
مقالات مرتبط

آموزش نود جی اس قسمت اول

دسامبر 4, 2017 | Alireza.kharidar

برای خواندن این آموزش ابتدا باید آموزش کار با گیت بش را مطالعه کنید در این فصل یاد...

ادامه مطلب ...
بدون دیدگاه
ارسال یک دیدگاه