Skip to content

Instantly share code, notes, and snippets.

@ishaadX
Forked from mhasan3/node.md
Last active August 29, 2015 14:27
Show Gist options
  • Save ishaadX/7fb01a9cc1b71a056f16 to your computer and use it in GitHub Desktop.
Save ishaadX/7fb01a9cc1b71a056f16 to your computer and use it in GitHub Desktop.

Assert:

এই মডিউল টি অ্যাপ্লিকেশনের ইউনিট টেস্ট লেখার জন্য ইউজ করা হয়। এটিকে অ্যাকসেস করা হয়:

require('assert')

Buffer:

পিওর জাভাস্ক্রিপ্ট ইউনিকোড ফ্রেন্ডলি কিন্তু বাইনারি ডেটার সাথে তেমন ফ্রেন্ডলি না। টিসিপি স্ট্রিম অথবা ফাইল সিস্টেম নিয়ে কাজ করতে হলে অক্টেট স্ট্রিম নিয়ে কাজ করতে হয়। অক্টেট স্ট্রিম ম্যানিপুলেট করা, তৈরি করা বা কনজুম করার জন্য নোডের কিছু কৈাশল অাছে।

বাফার ক্লাসের ইন্সট্যান্সে raw ডেটা রাখা হয়। বাফার ইন্টিজার অ্যারের মতই, কিন্তু বাফার হচ্ছে v8 হিপের বাহিরে raw ম্যমরি অ্যালোকেট করা। বাফারকে রিসাইজ করা যায় না।

বাফার ক্লাস গ্লোবাল, তাই এটিকে রিকোয়ার করা অপ্রয়োজনীয়।

Addons:

অ্যাডঅনস হল ডাইনামিক্যালি লিংকড শেয়ারড অবজেক্ট। এর মাধ্যমে c/c++ এর লাইব্রেরী কাজে লাগানো যায়। Child process:

Node provides a tri-directional popen(3) facility through the child_process module. চাইল্ড প্রসেস দিয়ে নোড তিন মাত্রার [child.stdin, child.stdout, and child.stderr] popen সুবিধা দেয় নন-ব্লকিং ভাবে।

[*popen — Opens process file pointer]

child.stdin: এটি রাইটএবল স্ট্রীম। child.stdout: এটি রিডএবল স্ট্রীম। child.stderr: এটিও রিডএবল স্ট্রীম।

Cluster:

নোডের একটি ইন্সট্যান্স একটি সিংগেল থ্রেডে রান করে। মাল্টি কোরের সুবিধা নিতে নোডের ক্লাস্টার ব্যবহার করা হয়। ক্লাস্টার মডিউল সহজে চাইল্ড প্রসেস তৈরী করতে দেয় যা পোর্ট শেয়ার করে।

console:

stdin এবং stderr এ কিছু প্রিন্ট করতে কনসোল ইউজ করা হয়। এটি ব্রাউজার এর কনসোলের মতই। এখানে অাউটপুট stdin এবং stderr এ সেন্ড করা হয়।

কনসোল ফাংশন সিংক্রোনাস যখন ডেস্টিনেশন কোন ফাইল/টারমিনাল। এবং অ্যাসিংক্রোনাস যখন পাইপিং করা হয়।

Crypto:

 require('crypto') 

https net/http কানেকশনে সিকিউর ক্রেডেনশিয়াল এনক্যাপসুলেট করতে এই মডিউল ব্যবহার করা হয়।

এতে OpenSSL's hash, hmac, cipher, decipher, sign and verify methods এর wrapper সেট পাওয়া যায়।

Debugger:

নোডের বিল্টইন ডিবাগার অাছে। ডিবাগ অারগুমেন্ট দিয়ে নোড স্টার্ট করতে হয়। এই ডিবাগার সব কমান্ড সাপোর্ট করে না তবে simple step and inspection সম্ভব।

DNS:

require('dns')

এই মডিউলে দুই ধরনের ফাংশন অাছে:

১) ফাংশন যা OS এর নিজস্ব ফ্যাসিলিটি ব্যবহার করে নেম রেজুলিউশন পারফর্ম করে, নেটওয়ার্ক কমিউনিকেশনের কাজ করে না। এই ক্যাটাগরিতে একটি ফাংশন অাছে:

dns.lookup

২) এই ধরনের ফাংশন নেম রেজুলিউশন পারফর্ম করার জন্য DNS সার্ভারের সাথে কানেক্ট করে। এই ক্যাটাগরিতে 'dns.lookup' বাদে সব ফাংশন থাকে।

Domain:

বিভিন্ন IO অপারেশন একটি গ্রুপে হ্যান্ডল করার সুবিধা ডোমেইন দিয়ে থাকে। কোন এরর হলে প্রোগ্রাম সাথে সাথে এক্সিট না হয়ে এরর মেসেজ ডোমেইন ওবজেক্টে পাওয়া যায়।

Events:

require("events");

নোডের অনেক ওবজেক্ট ইভেন্ট প্রডিউস করে। যেমন: 'fs.readStream' একটি ইভেন্ট প্রডিউস করে যখন কোন ফাইল ওপেন করা হয়। যেসব ওবজেক্ট ইভেন্ট প্রডিউস সেগুলো সব 'events.EventEmitter' এর ইনস্ট্যান্স।

File System:

require('fs')

ফাইল ইনপুট অাউটপুট POSIX এর মাধ্যমে করে। POSIX এর ফাংশন গুলর সাথে এটি রাপার হিসেবে কাজ করে। এটির সব মেথড সিংক্রোনাস/অ্যাসিংক্রোনাস দুই ভাবেই ইউজ করা যায়।

[ POSIX (Portable Operating System Interface) is a set of standard operating system interfaces based on the Unix operating system.]

Globals:

এই অবজেক্টগুলো সব মডিউলে পাওয়া যায়। উল্লেখ্য: এই অবজেক্টগুলোর কিছু কিছু গ্লোবাল স্কোপে না পাওয়া গেলেও মডিউল স্কোপে পাওয়া যায়।

HTTP:

 require('http')

নোডে http এমনভাবে তৈরী করা হয়েছে যা প্রোটোকলের অনেক ফিচার সাপোর্ট করে। এটি স্ট্রীম হ্যান্ডলিং এবং মেসেজ পারসিং এর কাজ করে। একটি মেসেজকে পারজ করে হেডার এবং বডিতে পরিনত করে কিন্তু অাসল হেডার/বডিকে পারজ করে না।

HTTPS:

HTTPS হল HTTP এর TLS/SSL প্রোটোকল। নোডে এটিকে অালাদা মডিউল হিসেবে ইমপ্লিমেন্ট করা হয়েছে।

Modules:

নোডের নিজস্ব মডিউল লোডিং সিস্টেম অাছে। নোডে ফাইল এবং মডিউল 'one-to-one correspondence' এর মত। one-to-one correspondence one-to-one correspondence net:

require('net')

নেট মডিউল অ্যাসিংক্রোনাস নেটওয়ার্ক রাপার সুবিধা দেয়। এটিতে সার্ভার এবং ক্লায়েন্ট দুইটিই তৈরী করার মেথড থাকে।

os:

require('os') 

অপারেটিং সিস্টেম কিছু ইউটিলিটি ফাংশন সুবিধা দিয়ে থাকে।

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment