Подтвердить что ты не робот

Что такое привязки node.js?

Я очень новичок в node.js и, похоже, нигде не могу найти определения, что такое привязки node.js. Я видел этот термин в слайдах и обсуждениях nodejs, но он никогда не был четко объяснен. Кто-нибудь может помочь прояснить эту концепцию для меня? Я приложил изображение того, на что я ссылаюсь. enter image description here

4b9b3361

Ответ 1

Вместо того, чтобы понимать, что такое привязки node.js, более полезно понять, что такое "привязки".

Допустим, вы пишете веб-приложение, в котором серверная часть node.js(JavaScript):

  1. получает запросы от клиентов,
  2. проводит запросы к базам данных,
  3. сортирует результаты запроса и, наконец,
  4. возвращает результаты клиенту.

Теперь обычно вы пишете весь код самостоятельно. Однако вы знаете, что есть отличная библиотека сортировки, которая может позаботиться о шаге 3 (т.е. сортировка результатов запроса). Единственная проблема заключается в том, что библиотека написана на языке системного программирования, таком как C/C++, тогда как ваш код написан на JavaScript. Обычно вы не можете использовать эту библиотеку в своем коде, потому что они на разных языках программирования, но с привязками вы можете.

Привязки в основном представляют собой библиотеки, которые "связывают" два разных языка программирования, так что код, написанный на одном языке, можно использовать в коде, написанном в другой библиотеке. При наличии привязок вам не нужно снова писать весь код только потому, что они написаны на разных языках. Другой мотивацией для привязок является то, что вы можете воспользоваться преимуществами различных языков программирования. Например, C/C++ намного быстрее, чем JavaScript. Может быть полезно написать код на C/C++ для повышения производительности.

Теперь давайте взглянем на картинку, которую вы прикрепили. Согласно официальному сайту Google, движок V8 " написан на C++ ". libuv добавляет уровень абстракции, обеспечивающий асинхронные операции ввода-вывода, написанные на языке C. Однако основные функции Node.js, такие как работа с сетью, запросы к базе данных, ввод-вывод файловой системы, предоставляются в библиотеках (или модулях, если вы предпочитаю) которые написаны на JavaScript. Кроме того, ваш код также написан на JavaScript. Теперь, чтобы эти технологии, написанные на разных языках программирования, могли общаться друг с другом, вы должны "связать" их вместе, используя привязки. Эти привязки являются привязками node.js.

Недавно я написал статью, в которой объясняется архитектура внутренней кодовой базы Node.js, в которой я объяснил, как привязки вписываются в Node.js!

Ответ 3

Привязки Node.js представляют собой серию методов, которые можно использовать в коде Node.js, которые на самом деле просто выполняют код C++ за кулисами.

fs.readFile()  

Этот метод не является частью JavaScript. Он предоставляется v8 как часть среды выполнения node.js. Так что javascript не знает, как читать файл с диска, но C++ знает. Поэтому, когда мы используем код JavaScript и node.js для чтения файла с диска, он просто переносит все это на функцию C++, которая может фактически прочитать файл с диска и получить результаты обратно.

enter image description here

Javascript также имеет привязки в браузере. например;

document.querySelector()

это не код JavaScript Он реализован на хромированном двигателе V8.