Відкрити головне меню

Зміни

109 байтів додано ,  1 місяць тому
В платформі використовується розроблений компанією [[Google]] [[рушій JavaScript|рушій]] [[V8 (рушій JavaScript)|V8]].
 
Для забезпечення обробки великої кількості паралельних запитів у Node.js використовується асинхронна модель запуску коду, заснована на обробці подій в неблокуючому режимі та визначенні обробників зворотніх викликів (callback). Як способи мультиплексування з'єднань підтримується <tt>epoll</tt>, <tt>kqueue</tt>, <tt>/dev/poll</tt> і <tt>select</tt>. Для мультиплексування з'єднань використовується [[бібліотека програм|бібліотека]] [[libuv]], для створення пулу [[нить|нитей]] (thread pool) задіяна бібліотека [[libeio]], для виконання [[DNS]]-запитів у неблокуючому режимі інтегрований c-ares. Всі системні виклики, що спричиняють блокування, виконуються всередині пулу потоківнитей і потім, як і обробники сигналів, передають результат своєї роботи назад через неіменовані канали (pipe).
 
За своєю суттю Node.js схожий на фреймворки [[Perl]] [[AnyEvent]], [[Ruby]] [[Event Machine]] і [[Python]] [[Twisted]], але цикл обробки подій (event loop) у Node.js прихований від розробника і нагадує обробку подій у [[веб-застосунок|веб-застосунку]], що працює в [[браузер]]і. При написанні програм для Node.js необхідно враховувати специфіку [[подієво-орієнтоване програмування|подієво-орієнтованого програмування]], наприклад, замість виконання
<source lang=javascript>
var result = db.query ("select .. ");