Node.js یک پلتفرم سمت سرور و متن باز است که براساس موتور جاوا اسکریپت نسخه 8 گوگل کروم بنا شده است. چند منظوره عمل می کند و قادر است اپلیکیشن های وب بلادرنگ تولید کند و برای کارآیی و سبکی بیشتر، از عملیات ورودی خروجی رویداد محور و مسدود نشدنی استفاده می کند. نود جی اس (Nodejs) در سال 2009 توسط رایان دال و تیم توسعه Joyent به زیان C، C++ و جاوا اسکریپت نوشته و طراحی شد که البته نسخه اولیهی آن فقط لینوکس را پشتیبانی می کرد. بد نیست بدانید مدیریت پکیج نود جی اس یا NPM، بزرگترین اکوسیستم کتابخانه متن باز دنیاست!
بسته به معماری سیستم عامل شما، آخرین نسخه نود جی اس (Nodejs) از صفحه وبسایت رسمی نود جی اس Nodejs Download در اختیار شماست. همین که دانلود کردید، متن پرداز خودتان را باز و شروع به کدنویسی کنید. متن پردازهایی همچون Atom، Notepad++ ،Visual Studio Code و Sublime مناسب این کارهستند.
اجازه دهید تشریفات رسمی برنامه نویسی را با ایجاد یک برنامه که عبارت آشنای “Hello World” را در خروجی کنسول نمایش میدهد، بجا بیاوریم. ببینید که این تکه برنامه چقدر ساده است:
//file-name : hello-world-in-node.js
console.log('hello world');
برای اجرای برنامه بالا، دستور زیر را در محیط خط فرمان وارد کنید:
>node hello-world-in-node.js
//simple-server-in-nodejs.js
var http = require('http'); var host = '127.0.0.1' var port = 3000 var server = http.createServer((request, response) => { response.writeHead(200, {"Content-Type": "text/plain"}); console.log("server Working"); response.end('Server Working Success'); }); server.listen(port,host, (error) => { if (error) { return console.log('Error occured : ', error ); } console.log('server is listening on ' + host + ':'+ port); });
و باز هم ،برای اجرای کد فوق ،دستور زیر را در خط فرمان به کار میبریم:
>node simple-server-in-nodejs.js
در کد زیر، علاوه جزئیاتی که قبلا گفته شد و نیازی به تکرار آنها نیست، موارد زیر قابل بررسی است:
متد توکار response.write() برای ارسال پاسخ به یک درخواست بهکار میرود. قبلا گفتیم که متد respond.end() برای ارسال پاسخ به کار میرود، ولی تنها برای ارسال یک پاسخ. درحالی که به کمک متد respond.write() به هرتعداد که بخواهیم، می توانیم پاسخ ارسال کنیم. اکنون اجازه دهید ببینیم رشتهها چگونه در یک سرور http در نود جی اس به کار میروند.
//serve-string.js
var http = require('http'); var host = '127.0.0.1' var port = 3000 var server = http.createServer((request, response) => { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World!"); response.end(); }); server.listen(port,host, (error) => { if (error) { return console.log('Error occured : ', error ); } console.log('server is listening on ' + host + ':'+ port); });
و به یاد داریم که برای اجرا، دستور زیر را درخط فرمان وارد کنیم:
>node serve-string.js
در بخش پیشین ما یاد گرفتیم چگونه یک رشته را در نودجی.اس بهکار بگیریم، ولی درعمل، بندرت رشته ها را بهکار میگیریم، درعوض در بسیاری از موارد، فایلهای html را مورد استفاده قرار میدهیم. پس اجازه دهید ببینیم چگونه این عمل انجام پذیر است:
//serve-html.js
var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { console.log("Port Number : 3000"); // change the MIME type from 'text/plain' to 'text/html' res.writeHead(200, {'Content-Type': 'text/html'}); //reading the content file fs.readFile('index.html', (err, data) => { //checking for errors if (err) throw err; console.log("Operation Success"); //sending the response res.end(data); }); }).listen(3000);
برای اجرا، دستور زیر را در خط فرمان وارد کنید:
>node serve-html.js
ممکن است سناریوهای زیادی برای ارسال پاسخها برای زمانی که پاسخ یک متن ساده نیست، داشته باشیم. بعنوان نمونه، برای رابطهای برنامه نویسی یا api های از نوع REST، باید پاسخی به شکل JSON بفرستیم. بنابراین، اجازه بدین ببینیم این کار چگونه در نود جی اس ممکن است؟
//serve-json.js
var http = require('http'); var fs = require('fs'); console.log('Server will listen at : 127.0.0.1:3000 '); http.createServer(function (req, res) { //change the MIME type to 'application/json' res.writeHead(200, {'Content-Type': 'application/json'}); //Create a JSON let json_response = { status : 200 , message : 'succssful' , result : [ 'sunday' , 'monday' , 'tuesday' , 'wednesday' ] , code : 2000 } console.log('Server Running'); res.end( JSON.stringify(json_response) ); }).listen(3000);
برای اجرای کد فوق، دستور زیر را در خط فرمان وارد کنید:
>node serve-json.js
اکنون اجازه دهید کمی سرگرم شویم و ببینیم چکونه میتوان یک فایل pdf را در نود جی اس به کار گرفت:
//serve-pdf.js
var http = require('http'); var fs = require('fs'); console.log('Server will listen at : 127.0.0.1:3000 '); http.createServer( (req, res)=> { console.log("Port Number : 3000"); // Change the MIME type to application/pdf res.writeHead(200, {"Content-Type": "application/pdf"}); fs.readFile('index.pdf', (error,data) => { if(error){ res.json({'status':'error',msg:err}); }else{ res.write(data); res.end(); } }); }).listen(3000);
برای اجرای کد فوق، دستور زیر را درخط فرمان وارد کنید:
>node serve-pdf.js
این روزها، به کارگیری صوت، یکی از نیازمندیهای اساسی وبسایتهاست و البته این کار در نود جی اس بسیار ساده است:
//serve-mp3.js
var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { console.log("Port Number : 3000"); // change MIME type to 'audio/mp3' res.writeHead(200, {'Content-Type': 'audio/mp3'}); fs.exists('audio.mp3',function(exists){ if(exists) { var rstream = fs.createReadStream('audio.mp3'); rstream.pipe(res); } else { res.end("Its a 404"); } }); }).listen(3000);
برای اجرای کدفوق، دستور زیر را درخط فرمان بزنید:
>node serve-mp3.js
و درآخرین بحث، بهترین کار را ارائه میدهیم: به کارگیری تصویر. به کمک یک کد ساده در نودجی.اس، میتوانیم ویدئو را نیز به خدمت بگیریم. تمام کاری که باید انجام دهید این است که فقط نوع MIME را تغییر دهید. به کد زیر دقت کنید:
//serve-mp4.js
var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { console.log("Port Number : 3000"); // change the MIME type to 'video/mp4' res.writeHead(200, {'Content-Type': 'video/mp4'}); fs.exists('video.mp4',function(exists){ if(exists) { var rstream = fs.createReadStream('video.mp4'); rstream.pipe(res); } else { res.send("Its a 404"); res.end(); } }); }).listen(3000);
درخط فرمان دستور زیر را برای اجرای کد فوق وارد کنید:
>node serve-mp4.js
در این بخش از سری 30 روز از نود جی اس، در مورد سرور نود جی اس نکاتی یاد گرفتیم. همچنین علاوه بر مقدمهای به نود جی اس، یاد گرفتیم که چگونه آن را نصب کنیم. سپس مثال “hello world” را نوشتیم و آموختیم که چگونه یک سرور سادهی html در نود جی اس راه اندازی کنیم و موارد زیر را با هم دیدیم:
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.