Node.JS v6.0.0 haqida

Node.JS v6.0.0 haqida

Node.JS v6.0.0 haqida

Bir necha kun oldin Node.JSning naqd 6 versiyasi chiqdi. Ha esimda, Node.jsning 0.10 versiyasidan ishlashni boshlagan edim 🙂

O’zgarishlar ko’p bo’ldi, v8ning yangilanganligi sababli(v8 dvijokning 5-versiyasi) avvalgi versiyada yozilgan kodlaringiz buzilib qolishi mumkin. Manda Gulpdagi loyiha buzilib qoldi, darhol o’tishni tavsiya qilmayman. Shu yilning oktabr oyidan boshlab v6.x versiyasi LTS maqomini oladi va uni 2018 yilning apreligacha qo’llab quvvatlashadi.

Dasturlarda havfsizlikni oshirish maqsadida, Bufferning ishlash logikasi o’zgartirildi. Endi oldindan Proxy, Reflect va kengayrilingan holda ES 2015 ishlatish mumkin.

Hozirgi LTS yani v4, 2017 yilgacha qo’llab quvvatlanadi. Dasturchilar 6-versiyaga o’tib olishlari uchun, 5-versiya yana 2 oy qo’llab-quvvatlanadi. v0.10 va v0.12 esa shu yilning noyabr oyida butunlay to’xtatiladi.

API o’zgarishlar.

changelogdagi eng muhim o’zgarishlar yozildi.

Buffer

Buffer obyektining konstruktori o’zini ishlashi o’zgartirdi. Eski konstruktor deprecated statusini olar edi, ana endi esa uni alohida metodga chiqarishdi.

// Oldin 
new Buffer(size);
// Yangi versiyada
Buffer.alloc(size);

Oldindan buffer nollar bilan to’lib oladi, agar talab qilinmasa
Buffer.allocUnsafe ishlating. Yozuvli buffer yoki boshqa bufferlarni aniqlab olish uchun Buffer.from metodi qo’shildi:

// Oldin
new Buffer(str, 'utf8');
// Yangi versiyada
Buffer.from(str, 'utf8');

EventEmitter

EventEmitter obyektida yangi
prependListener va prependOnceListener metodlari paydo bo’ldi, ularning ikkalasi ham hodisalarni qayta ishlash jadvalining boshiga yangi hodisani qayta ishlovchisini qo’shadi.

var newEvent = new EventEmitter();
var result = [];
newEvent.on('event', () => result.push(1));
newEvent.prependListener('event', () => result.push(2));
newEvent.emit('event');
result; // -> [2, 1]

Bu misolda avval resultga 1ni jo’natyapmiz, unda keying esa prependListener orqali 2 jo’natyapmiz, resultda olganimizda biz kutganimizday avval 2, undan keyin esa 1 kelmoqda.

FileSystem

fs.realpath va fs.realpathSync metodlar libuvning yangi logikasini oldi, endi ular qo’shima xatoliklarni qaytarishi mumkin. Yana bu metodlarni chiqarishda Buffer ishlatish mumkin.

HTTP

HTTP server endi klientga xatolik chiqarish uchun clientError hodisani generatsiya qilib beradi. Namunani
bu yerda ko’rishingiz mumkin.

Process

Muammolar to’g’risida ogohlantiruvchi mexanizm ishlab chiqildi. stderrni kirgazish o’rniga endi ogohlatirishni yangi metod bilan amalga oshirsa bo’ladi:

process.emitWarning('nimadur xato ishlamoqda :) ');

Yana Error obyekitini jo’natish ham mumkin.

Stream

Streamlar obyekt ko’rinishida endi null yozuvlarni qabul qila olmaydi.

URL

url.resolve metodi host o’zgarganda username va passwordni tashlab yuboradi.

Windows

WinXP va Vistani endi Node.js qo’llab quvvatlamaydi! Urrraaaa G’alaba 🙂

v8 yangilandi

Node.jsda, endi ECMAScript 2015ning «Крутой» imkoniyatlarini ishlatsa bo’ladi.

Destruktiv qiymat olish

Massiv yoki obyektning qiymatini birdaniga o’zgaruvchida tanlasa bo’ladi.

let [a, b] = [1, 2];
let {c, e} = {c: 3, e: 4};

Funksiyaning destruktiv argumentlari

Obyekt yasash yoki massivni funksiyaga argument sifatida jo’natilayotgan paytda ko’rsatish mumkin:

function fn({arg}) {
    return arg.site;
}
fn({arg: '1', site:'Texnoman.uz'}); // -> Texnoman.uz

Oldidan qiymat aniqlash

Ana endi oldingan qiymat berib qo’yishimiz mumkin:

function doSomething(name = 'Farrukh') {
    console.log('My name is %s.', name);
}

doSomething(); // -> My name is Farrukh. 

Proxy va Reflect

Proxy va Reflect obeyktlari Terminal(cmd) yordamisiz ishlatish mumkin.

Arraydan Inheritance olish(nasl olish)

Nihoyat Array obyektidan to’liq inheritance olish mumkin.

Menincha Node.jsning yaxshi versiyasi bo’ldi. Aytib o’tay v6.x LTS maqomini oladi ungacham anacha o’zgarishlar bo’lishi mumkin. Yangi o’zgarishlar haqida yangi maqolalarda aytib boraman. Hozircha shular.

Good Luck!

Umumiy Dasturlash
Node.JS v6.0.0 haqida