Серия «Начало работы с Node.js» (1)

Node.js
Серия «Начало работы с Node.js» (1)

написать впереди

Прежде всего, я хотел бы поблагодарить многих друзей, у которых есть личные сообщения и комментарии, за их доверие и поддержку, которые дали мне мотивацию продолжать писать.

Большой фронт настолько велик, что мы часто не видим конца.Разрозненное обучение всегда лишает нас возможности проводить параллели.Только подбадривая друг друга и «выявляя слабости», мы можем стать сильнее, поэтому в конце статьи, Я одинокий партнер Подготовил переднюю семью, с ней передовой передовой не одинок. Мы восхищаемся технологическими гигантами, и раньше они усердно учились и исследовали, как мы сейчас. Я также извлек пользу из советов многих предшественников, поэтому я знаю, насколько полезно ободрение и обмен опытом для предшественников. Одна монета в день, тысяча баксов за тысячу дней, веревка, распиливающая дерево, сломана, вода роняет камень, и постепенное накопление сделает нас сильнее. Если однажды вы станете сильнее, по возможности не забывайте помогать тем, кто стремится продвигаться вперед, это не имеет никакого отношения к интересам, просто потому, что у всех нас есть общая цель.

Серия Node.js Getting Started представляет собой полный набор справочных руководств, начиная с этого раздела, мы официально входим в Node.js. В серии будут описаны точки знаний в виде структурных карт мозга, текстовых объяснений, общих резюме, практических примеров и тестовых участков для интервью. Хотя изучение этой серии не даст вам немедленного повышения зарплаты на 10 тысяч, полученные знания могут помочь вам почувствовать себя более непринужденно и уверенно. Здесь смею вас попросить обратить внимание и поставить лайк.Хочу отдать должное нам, не желающим быть посредственными.

Обзор последней серии

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

Если вы хотите прочитать ее снова, пожалуйста, нажмите здесь, чтобы выбрать главу, которую вы хотите прочитать:Разговор о начале работы с Node.js

Цели обучения этого раздела

Какие болевые точки внешнего интерфейса, функции Node.js и применимые сценарии можно решить, официально начав работу с Node.js.

Учебный каталог для этого раздела

1. Какие проблемы может решить Node.js?

2. Какие проекты подходят для выбора Node.js?

Три установки  Node.js

Четыре примера приложения  Node.js

5. Резюме этого раздела

Шестой конец текста

1. Какие проблемы может решить Node.js?

❶ Обеспечьте большое количество одновременных подключений пользователей.

Теперь, когда Node.js решил проблему высоких одновременных пользовательских соединений, подумайте об этом: в чем проблема с высоким совпадением традиционного NODE.js? Как Node.js решает эту проблему?

В чем проблема с высоким параллелизмом традиционных не-Node.js?

В серверных языках, таких как Java, PHP или ASP.NET, каждое клиентское соединение создает для него новый поток, и каждый поток потребляет около 2 МБ памяти, если у нашего сервера 8 ГБ памяти, то теоретически он может обслуживать до 4000 пользователей одновременно. Если вы хотите оказывать сервисную поддержку большему количеству пользователей одновременно, необходимо увеличивать количество серверов, как следствие, увеличивается стоимость оборудования, а также вытекает проблема обмена данными между разными серверами. Таким образом, решение о создании нового потока для каждого пользовательского соединения ограничено памятью сервера и становится узким местом для большого числа одновременных соединений.

Как Node.js решает эту проблему?

Чтобы решить проблему большого количества одновременных подключений, Node.js отказался от идеи «создания нового потока для каждого пользовательского подключения» и изменил ее на каждого пользователя, подключающегося внутри Node.js, чтобы инициировать событие. Это решает проблему множественных пользовательских подключений, исчерпывающих память сервера. Что касается того, какое событие срабатывает и как его вызвать, мы обсудим позже.

❷ Внедрение высокопроизводительных серверов

Строго говоря, Node.js — это инструмент разработки для разработки различных веб-серверов. На сервере Node.js работает скриптовый язык JavaScript V8. Язык может анализироваться и выполняться движком JavaScript V8. Да, вы проходите через движок V8 в Chrome. Node.js использует его на сервере, а также добавляет к нему множество новых API для улучшения движка. . Одного этого недостаточно, чтобы объяснить, насколько высока производительность Node.js.В движке V8 используется совершенно новая технология языковой компиляции, которая может создавать сценарии, написанные на JavaScript, и сценарии, написанные на других языках (например, на языке C). Код имеет очень похожую эффективность выполнения. (Почему это важно? Как мы увидим позже, Node.js предоставляет множество модулей, большинство из которых написаны на JavaScript, тогда как некоторые другие модули написаны на других базовых языках, таких как язык C, движок V8 и т. д. технологии компиляции решает проблему различий в эффективности выполнения, вызванных разными языками, так что мы можем игнорировать проблемы, вызванные различиями языков модулей.)

❸ Неблокирующий ввод-вывод и механизм обработки событий

Как упоминалось ранее, Node.js использует движок V8 на стороне сервера для достижения высокой производительности сервера.

JavaScript — это однопоточный язык, как и JavaScript V8. В отличие от JavaScript на стороне браузера, JavaScript V8 предоставляет неблокирующий механизм ввода-вывода. Что это значит? По сути, это асинхронный сетевой запрос JavaScript. Во время ожидания результата запроса код запроса будет продолжать выполняться, не дожидаясь возврата данных, а результат, возвращенный запросом, будет обработан в функции обратного вызова. Этот механизм называется механизмом неблокирующего ввода-вывода. Поскольку трудоемкие задачи не блокируют последующий код, эффективность выполнения значительно повышается. Конечно, в качестве примера здесь используется сетевой запрос, но фактическими событиями могут быть:

Node.js также имеет механизм цикла событий.

Механизм цикла событий в Node.js очень похож на механизм цикла событий в JavaScript, но есть отличия.Есть еще два асинхронных метода, setImmediate и process.nextTick.Мы подробно обсудим их позже, если вы знаете : Node.js Обладает характеристиками механизма цикла событий, а Node.js может достигать высокого параллелизма благодаря своему уникальному механизму цикла событий.Этот механизм аналогичен механизму цикла событий в JavaScript и отличается от него.

2. Какие проекты подходят для выбора Node.js?

Согласно характеристикам Node.js, упомянутым в нашей главе, его применимые проекты на самом деле являются его преимуществами, которые резюмируются следующим образом:

Когда программе нужно обработать большое количество одновременных входных и выходных данных, и после отправки запроса на сервер ей не нужно заниматься очень сложной логикой в ​​период ожидания возврата результата.

Пример проекта: 1) Сервер чата, одновременно может быть большое количество одновременных подключений, и на самой стороне сервера нет очень сложной обработки. 2) Серверы электронной коммерции: такие сценарии, как всплески, быстрые покупки и пунктуальные продажи.

3. Установка Node.js

Адрес загрузки официального сайта установочного пакета Node.js:

Загрузите установочный пакет, выберите место установки и перейдите к «Далее».

Четыре, пример приложения Node.js

После установки запускаем наш первый проект и выводим «Hello World».

Шаг 1: Откройте редактор кода, создайте новый файл и сохраните его как hello.js. Шаг 2: На странице используйте require для импорта модуля (метод импорта require — это метод введения common.js), код такой:

var http = require("http");

Шаг 3: Мы используем метод http.createServer() для создания сервера и метод listen для привязки порта 8888. Функции получают данные и отвечают на них через параметры запроса, ответа. Код для всей страницы записывается следующим образом:

var http = require('http');

http.createServer(function (request, response) {

    // 发送 HTTP 头部
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 发送响应数据 "Hello World"
    response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

Шаг 4: С помощью приведенного выше кода мы завершили работающий HTTP-сервер. Теперь, когда пришло время выполнить, откройте терминал, найдите путь к каталогу hello.js (если он находится в vscode, вы можете нажать Ctrl + `, чтобы вызвать терминал), а затем введите команду в терминале:

node hello.js

Шаг 5: Затем откройте браузер и посетите http://127.0.0.1:8888/, вы увидите веб-страницу с надписью «Hello World».

V. Резюме этого раздела

Этот раздел предназначен в основном для того, чтобы понять, какие проблемы может решить Node.js, какими характеристиками он обладает и для каких проектов подходит.

Обобщенно следующим образом:

  1. Прежде чем писать Node.js, вам необходимо установить программное обеспечение Node.js, прежде чем его можно будет использовать в обычном режиме;
  2. Файлы, написанные Node.js, также являются файлами js, оканчивающимися на .js, которые совпадают с файлами js, написанными на стороне браузера;
  3. Файлы Node.js необходимо выполнять с помощью команд терминала, прежде чем их можно будет отобразить в браузере, в то время как js на стороне браузера нужно открывать только в браузере;
  4. Когда Node.js пишет код, часто необходимо вводить модули, и он также использует множество методов и свойств, предоставляемых модулями, в то время как js на стороне браузера использует API, предоставляемый ECMA, и API, предоставляемый объектом BOM, в основном нет. необходимо ввести модули, и методы введения также различаются.Node.js следует стандарту common.js и использует требование для введения модуля, в то время как js на стороне браузера следует стандарту модулей ES и импортирует файлы или модули через импорт; знание модулей будет подробно рассмотрено в следующем разделе.Фестиваль – это в основном первый опыт и первое впечатление.
  5. Node.js работает через терминал, и проблем с совместимостью нет, в то время как JavaScript на стороне браузера зависит от среды браузера, поэтому разные браузеры могут иметь проблемы с совместимостью.

Это все для этого раздела, следующий раздел будет обновляться, пожалуйста, продолжайте обращать внимание~

конец статьи

Пишите только понятные, понятные и ценные технические статьи;

Прочитав его, вы почувствуете себя вознагражденным, поставьте лайк + подписаться, и платформа порекомендует вам более качественные тематические статьи;

Готовитесь к интервью? Давайте поговорим и улучшайте себя каждый день, когда вы подходите к вопросам интервью; вы готовы перейти к расширенному полному стеку? Давайте поговорим о продвинутом способе и избегайте обходных путей; Устали набирать код? Приходите и пообщайтесь в группе, чтобы сделать работу более эффективной. Из-за ограничений в настоящее время их более 200, и к ним можно присоединиться только по приглашению, поэтому, пожалуйста, добавьте также мой личный кабинет, и я приглашу вас снова. Приходи сюда, чтобы найти больше единомышленников для фронтенд-партнеров~