ساخت و اجرای سرور توسط nodejs و express
اگر تا الان با زبانهای برنامه نویسی تحت وب دیگهای مثل PHP کار کرده باشید میدونید که برای استفاده حتما نیاز دارید تا وب سروری نظیر apache اجرا کنید. در این مقاله میخوایم یاد بگیریم که چطور با nodejs وب سرور بسازیم و نکتهی جالب اینکه برای اینکار فقط به nodejs احتیاج دارید و نَه چیز دیگه.
برای اینکه کار ساخت و استفاده از سرور با کیفیت تر و ساده تر باشه (مثل فلسفهی بوجود اومدن هر ماژول دیگه ای) ماژولی به نام express برای nodejs توسعه داده شد. در قدم اول سروری بدون express میسازیم و در قدم دوم از express برای ساخت سرور استفاده میکنیم.
برای شروع کار یه فولدر ایجاد کنید و فایل package.json رو توی اون ایجاد کنید. برای اینکار میتونید آموزش کار با npm رو مطالعه کنید. بعد از این کار یه فایل با پسوند js ایجاد کنید(اسم فایل مورد استفاده در این مقاله index.js).
1- ساخت سرور بدون express
اول از همه نیاز داریم تا ماژول http رو فراخونی کنیم، برای اینکار کد زیر رو در فایل index.js خودتون بنویسید:
var http = require('http');
بعد از این کار باید پورتی رو مشخص کنید که سرور روی اون پاسخگو باشه:
const PORT = 8080;
در این مرحله نیاز دارید تا تابعی تعریف کنید که درخواستهای کاربران را مدیریت کند و این تابع را به عنوان آرگومان به سرور ساخته شده بدهید. در کد زیر با استفاده از http.createServer سرور را میسازیم و مقدار بازگشتی آن را در متغیر server میریزیم. بعد از کامل شدن و اجرا کردن این کد، هروقت کاربر آدرس سرور ما را وارد کنه با پیغام your url / مواجه میشه.
function handleRequest(request, response){ response.end('your url : ' + request.url); } var server = http.createServer(handleRequest);
فقط میمونه قسمت آخر کدمون که مربوط به گوش کردن سرور به پورت مورد نظرمون میشه. با استفاده از کد زیر به سرور میگیم که روی پورت ۸۰۸۰ به کاربران پاسخگو باش. یه تابع هم به عنوان callback function به عنوان آرگومان دوم مینویسیم، که بعد از اجرا شدن سرور اجرا میشه.
server.listen(PORT, function(){ console.log("Server listening on: http://localhost:%s", PORT); });
در نهایت با کنار هم قرار دادن کدهای بالا، به مجموعهی زیر میرسیم :
var http = require('http'); const PORT = 8080; function handleRequest(request, response){ response.end('your url : ' + request.url); } var server = http.createServer(handleRequest); server.listen(PORT, function(){ console.log("Server listening on: http://localhost:%s", PORT); });
الان میتونید با اجرای دستور node index.js برنامه رو اجرا کنید. بعد از اجرای برنامه با نوشتن localhost:8080 در مرورگرتون میتونید نتیجهی کار رو ببینید.
۲- ساخت سرور با استفاده از express
برای اینکار ابتدا توسط دستور زیر ماژول express رو نصب کنید:
npm install express --save
طبق معمول برای استفاده از پکیج مورد نظر باید اون رو توی یک متغیر بریزیم. البته در اینجا یه کار اضافه هم باید انجام بدیم که تو خط دوم نوشته شده:
var express = require('express'); var app = express();
پورت مورد نظر خودمون رو مشخص میکنیم:
const PORT = 8080;
از کد زیر هم برای گوش کردن سرور به پورت مورد نظرمون استفاده میکنیم:
var server = app.listen(PORT, function() { console.log('Server is listening on port ' + PORT); });
تا اینجای کار، استفاده از express خیلی تفاوتی برای ما ایجاد نکرد. جدا از بقیه قابلیتهای خوب express در اینجا به یه نمونه از کاربردهای قوی این ماژول اشاره میکنیم و بقیه قسمت ها رو توی مقالات دیگه بررسی میکنیم.
اگه دقت کرده باشین ما یه قسمت رو جا انداختیم. اون قسمتی که یه تابع مشخص میکردیم تا درخواستهای کاربران رو مدیریت کنه رو ننوشتیم. با express میتونیم به تفکیک بگیم که برای هر درخواست چه کاری انجام بده؛ مثلا کد زیر رو نگاه کنید:
app.get('/', function(req, res) { res.send("your url /"); });
با استفاده از این کد به سرور میگیم که هر کاربری وارد قسمت root سایت شد پیغام your url / رو نمایش بده. به وسیلهی تابع get میتونیم به urlهای مختلفی که کاربر وارد میکنه به تفکیک پاسخ بدیم.
در نهایت کد شما باید چیزی شبیه کد زیر بشه:
var express = require('express'); var app = express(); const PORT = 8080; app.get('/', function(req, res) { res.send("your url /"); }); var server = app.listen(PORT, function() { console.log('Server is listening on port ' + PORT); });
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.