دستورات مختلف در node.js

تعریف node.jsیک پلتفرم بر پایه موتور جاوا اسکریپت گوگل کروم موسوم به V8 می‌باشد که باعث سهولت ایجاد و مقیاس‌پذیری برنامه‌های تحت شبکه می‌شود. این پلتفرم از یک مدل I/O رویداد محور استفاده می‌کند که مسدود نشونده (non-blocking) است و همین امر باعث کاهش فشار موجود بر روی سرور و افزایش کارآیی می‌شود و این امر برای اجرای برنامه‌های مبتنی بر داده که بصورت بلادرنگ (Real-Time) بر روی سرورهای نامتمرکز استفاده می‌شوند بسیار مناسب است. همچنین یک پلتفرم متن باز برای گسترش برنامه‌های سمت سرور و تحت شبکه می‌باشد. این پلتفرم بر اساس زبان جاوا اسکریپت نوشته شده است و قابلیت پیاده‌سازی بر روی سیستم‌عامل‌های ویندوز، لینوکس و سیستم عامل کامپیوترهای اپل را دارد.دستورات مختلف در node.jsدر این بخش دستورات مورد استفاده در node.js را در سه سطح مبتدی، متوسط و پیشرفته نشان خواهیم داد.سطح مبتدینوشتن hello worldدستور کد زیر را در یک فایلی به نام "hello.js" می‌نویسیم.var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end('Hello World!'); }).listen(8080);با دسترسی به پورت 8080 با استفاده از این لینک http://localhost:8080 قادر به دیدن hello word هستیم.درست کردن ماژول کاربر ما می‌تونیم با کد زیر ماژول خود را درست کنیمexports.myDateTime = function () { return Date(); };و حالا میتونیم از ماژول بالا در کدمون استفاده کرده و از طریق پورت 8080 دسترسی داشته باشیم.var http = require('http'); var dt = require('./myfirstmodule'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write("The date and time are currently: " + dt.myDateTime()); res.end(); }).listen(8080);Output: /summerدرست کردن وب سروربا استفاده از کد زیر می‌تونیم وب سرور در node.js درست کنیمvar http = require('http'); //create a server object: http.createServer(function (req, res) { res.write('Hello World!'); //write a response to the client res.end(); //end the response }).listen(8080); //the server object listens on port 8080Output: /summerاضافه کردن HTTP هدرما باید هدر HTTP را زمانی که سرور می‌خواد محتوا را در فرمت HTML نشان دهد اضافه کنیم. سپس ما می‌تونیم از هدر HTTP برای محتوایی که نیاز داریم استفاده کنیم.var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('Hello World!'); res.end(); }).listen(8080);Output: /summerخواندن کوئری استرینگبرای خواندن کوئری استرینگ در node.js ما نیاز به پیاده‌سازی کد زیر داریم var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(req.url); res.end(); }).listen(8080);اسپلیت کوئری استرینگما می‌تونیم با استفاده از ماژول URL کوئری استرینگ را در node.js اسپلیت کنیم. var http = require('http'); var url = require('url'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); var q = url.parse(req.url, true).query; var txt = q.year + " " + q.month; res.end(txt); }).listen(8080);</codeOutput: خواندن یک فایل در node.jsما می‌تونیم با استفاده از متد ()readFile یک فایل را در node.js بخوانیم.var http = require('http'); var fs = require('fs'); http.createServer(function (req, res) { fs.readFile('demofile1.html', function(err, data) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); }).listen(8080);Output:فایل خالی با استفاده از متد openما می‌تونیم با استفاده از متد open یک فایل خالی در node.js درست کنیم. var fs = require('fs'); fs.open('mynewfile2.txt', 'w', function (err, file) { if (err) throw err; console.log('Saved!'); });Output:به روز رسانی یک فایل موجود به روز رسانی یک فایل در node.js در کد زیر نشان داده شده استvar fs = require('fs'); fs.appendFile('mynewfile1.txt', ' This is my text.', function (err) { if (err) throw err; console.log('Updated!'); });Output:جایگزینی محتوای موجود در یک فایلتوسط متد ()writeFile می‌تونیم به این امر دست پیدا کنیم. var fs = require('fs'); fs.writeFile('mynewfile3.txt', 'This is my text', function (err) { if (err) throw err; console.log('Replaced!'); });Output:سطح متوسطتریگر کردن یک گزارش در خطاهای بحرانیما می‌تونیم زمانی که خطای بحرانی یا Fatal Error رخ داد یک گزارش با استفاده از دستور زیر تریگر کنیم.–diagnostic-report-on-fatalerrorدستور بالا این اجازه را به ما می‌دهد تا گرفتن گزارش را زمانی که خرابی رخ داد فعال کنیم و برنامه مربوطه را terminate کنیم تا خرابی را بررسی و اشکال یابی کنیم.استفاده از console classاستفاده از console class برای اشکال یابی در node.js‌ (همانند JavaScript) می‌باشد و از ۳ متد ()console.log() ،console.error و ()console.warn بهره می‌برد.درست کردن یک کنسول جدید در node.js ما میتونیم یک کنسول جدید در node.js با دستور زیر درست کنیم.const output = fs.createWriteStream('./stdout.log'); const errorOutput = fs.createWriteStream('./stderr.log'); const logger = new Console({ stdout: output, stderr: errorOutput }); const count =5; logger.log(‘count:%d’,count);استفاده از certificate class‌ ما می‌تونیم با استفاده از certificate class‌ با کمک ماژول crypto با دیتا SPKAC‌ کار کرده که بیشتر برای دستیابی به خروجی المان <keygen> در HTML‌ استفاده می‌شود.یک instance جدید از certificate classاز طریق کد زیر قابلیت ایجاد یک instance جدید از certificate class هستیم.const crypto = require(‘crypto’); const cert1 = new crypto.Certificate(); const cert2 = crypto.Certificate();سطح پیشرفتهنحوه انتقال آرگومان‌ها به تابع از طریق کد زیر می‌تونیم آرگومان‌ها را به تابع listener انتقال دهیم.const myEmitter = new MyEmitter(); myEmitter.on('event', (a, b) => { console.log(a, b, this); // Prints: a b {} }); myEmitter.emit('event', 'a', 'b');اطلاعات مربوط به asynchronous و synchronous در EventEmitter ،node.js تمامی شنوندگان رو بطور synchronously به ترتیبی که ثبت شده‌اند صدا می‌زند و تابع‌های گوش دهنده می‌تونن به حالت عملکرد asynchronous با استفاده از متدهای ()setlmmediate و یا ()process.nextTick در بیایند. myEmitter.on('event', (a, b) => { setImmediate(() => { console.log('this happens asynchronously'); }); }); myEmitter.emit('event', 'a', 'b');برای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.