node js с чего начать
Изучение Node.js от начала до конца на практике. Часть 1
Предыстория
Обустраиваем рабочее место
Работать мне приходится и на работе и дома, работа ни как не связана с сайтостроительством и это ни как не должно мешать рабочему процессу. По этому, выбирая IDE, выбор пал на Cloud9 IDE. Дома для удобства использовался WebStorm. Все данные сайта нужно где-то хранить, после изучения теоретической части было решено на практике познакомиться с этим видом СУБД. Что бы не привязываться к рабочему месту, в роли СУБД была выбрана MongoDB и бесплатный хостинг для базы на mongohq.com.
Итак, у нас есть пустой проект и пустая база. Можно приступать.
1. Web application framework, одним из самых распространенных является express.
2. Сайт было решено написать полностью на HTML5, по этому шаблонный движок был выбран EJS.
3. MongoDB driver, их существует целый ряд, но мой выбор остановился на mongodb.
4. Верификация вводимых пользователем данных, node-validator.
Структура сайта
Первый шаг: Авторизация
Материалом для изучения служил топик и задача стояла типичная, дать возможность пользователям регистрироваться, восстанавливать пароль, запоминать вход на сайте, осуществить контроль почты и само собой вход.
1. Лицо сайта
2. Серверная часть
Дня начала создадим контроллер БД. Его задача — подключаться к базе, плюс еще некоторые часто используемые процедуры будут храниться там, /controllers/db.js:
Что бы не плодить огромную кучу переменных при работе создадим в папке controllers файл index.js. В этом случае если мы пишем
в переменной будет подключен именно наш index.js:
Следующим этапом создадим роутер для стартовой страницы /routers/index.js
Сессии пользователей мы будем хранить в нашей базе, используем для этого пакет connect-mongo.
И собственно наш server.js.
Инициализируем глобальные модули и переменные
Настраиваем сервер express
Тут есть маленькое отступление и сложность с которой я столкнулся. Если инициализацию сессий указывать после определения маршрутов, то сессии по какой-то причине на работают, по этому сессии инициализируем раньше.
Правильно
Неправильно
Подключаемся к базе, в случае успеха запускаем сервер
Пробуем запустить, смотрим на главную страницу, оно работает.
Теперь опишем контроллер отвечающий за пользователей сайта: /controllers/users.js
Регистрация пользователя:
Получаем пользователя по ID
Проверяем возможно ли войти пользователю
Если пользователь ставит галочку «запомнить меня» мы будем добавлять в куки хешированный идентификатор пользователя и хранить все будем в контроллере документов «stayonlinesessions». Напишем контроллер отвечающий за сессии /controllers/stayonlinesessions.js
Итак, у нас есть контроллеры которые отвечают за регистрацию и сессии, теперь нужно реализовать маршруты по авторизации. За эти функции у нас будет отвечать /routers/auth.js.
Регистрация пользователей
Получение текущего состояния авторизации
Несколько моментов о куках. Если при инициализации модуля сессий мы не указываем время хранения, то они не хранятся в браузере вовсе. Это лечится одной простой настройкой
На стороне клиента работа с куками довольно проста. Я использовал плагин jquery.cookie.js
В итоге мы получили авторизацию, регистрацию, функцию «запомнить меня», далее предстоит отправка письма с подтверждением email-адреса, восстановление пароля, но это в следующий раз.
Руководство по Node.js, часть 1: общие сведения и начало работы
Мы начинаем публикацию серии материалов, которые представляют собой поэтапный перевод руководства по Node.js для начинающих. А именно, в данном случае «начинающий» — это тот, кто обладает некоторыми познаниями в области браузерного JavaScript. Он слышал о том, что существует серверная платформа, программы для которой тоже пишут на JS, и хотел бы эту платформу освоить. Возможно, вы найдёте здесь что-то полезное для себя и в том случае, если уже знакомы с Node.js.
Кстати, в прошлом году у нас был похожий по масштабам проект, посвящённый bash-скриптам. Тогда мы, после публикации всех запланированных материалов, собрали их в виде PDF-файла. Так же планируется поступить и в этот раз.
Сегодня мы обсудим особенности Node.js, начнём знакомство с экосистемой этой платформы и напишем серверный «Hello World».
Обзор Node.js
Node.js — это опенсорсная кроссплатформенная среда выполнения для JavaScript, которая работает на серверах. С момента выпуска этой платформы в 2009 году она стала чрезвычайно популярной и в наши дни играет весьма важную роль в области веб-разработки. Если считать показателем популярности число звёзд, которые собрал некий проект на GitHub, то Node.js, у которого более 50000 звёзд, это очень и очень популярный проект.
Платформа Node.js построена на базе JavaScript движка V8 от Google, который используется в браузере Google Chrome. Данная платформа, в основном, используется для создания веб-серверов, однако сфера её применения этим не ограничивается.
Рассмотрим основные особенности Node.js.
▍Скорость
Одной из основных привлекательных особенностей Node.js является скорость. JavaScript-код, выполняемый в среде Node.js, может быть в два раза быстрее, чем код, написанный на компилируемых языках, вроде C или Java, и на порядки быстрее интерпретируемых языков наподобие Python или Ruby. Причиной подобного является неблокирующая архитектура платформы, а конкретные результаты зависят от используемых тестов производительности, но, в целом, Node.js — это очень быстрая платформа.
▍Простота
Платформа Node.js проста в освоении и использовании. На самом деле, она прямо-таки очень проста, особенно это заметно в сравнении с некоторыми другими серверными платформами.
▍JavaScript
В среде Node.js выполняется код, написанный на JavaScript. Это означает, что миллионы фронтенд-разработчиков, которые уже пользуются JavaScript в браузере, могут писать и серверный, и клиентский код на одном и том же языке программирования без необходимости изучать совершенно новый инструмент для перехода к серверной разработке.
В браузере и на сервере используются одинаковые концепции языка. Кроме того, в Node.js можно оперативно переходить на использование новых стандартов ECMAScript по мере их реализации на платформе. Для этого не нужно ждать до тех пор, пока пользователи обновят браузеры, так как Node.js — это серверная среда, которую полностью контролирует разработчик. В результате новые возможности языка оказываются доступными при установке поддерживающей их версии Node.js.
▍Движок V8
В основе Node.js, помимо других решений, лежит опенсорсный JavaScript-движок V8 от Google, применяемый в браузере Google Chrome и в других браузерах. Это означает, что Node.js пользуется наработками тысяч инженеров, которые сделали среду выполнения JavaScript Chrome невероятно быстрой и продолжают работать в направлении совершенствования V8.
▍Асинхронность
В традиционных языках программирования (C, Java, Python, PHP) все инструкции, по умолчанию, являются блокирующими, если только разработчик явным образом не позаботится об асинхронном выполнении кода. В результате если, например, в такой среде, произвести сетевой запрос для загрузки некоего JSON-кода, выполнение потока, из которого сделан запрос, будет приостановлено до тех пор, пока не завершится получение и обработка ответа.
JavaScript значительно упрощает написание асинхронного и неблокирующего кода с использованием единственного потока, функций обратного вызова (коллбэков) и подхода к разработке, основанной на событиях. Каждый раз, когда нам нужно выполнить тяжёлую операцию, мы передаём соответствующему механизму коллбэк, который будет вызван сразу после завершения этой операции. В результате, для того чтобы программа продолжила работу, ждать результатов выполнения подобных операций не нужно.
Подобный механизм возник в браузерах. Мы не можем позволить себе ждать, скажем, окончания выполнения AJAX-запроса, не имея при этом возможности реагировать на действия пользователя, например, на щелчки по кнопкам. Для того чтобы пользователям было удобно работать с веб-страницами, всё, и загрузка данных из сети, и обработка нажатия на кнопки, должно происходить одновременно, в режиме реального времени.
Если вы создавали когда-нибудь обработчик события нажатия на кнопку, то вы уже пользовались методиками асинхронного программирования.
Асинхронные механизмы позволяют единственному Node.js-серверу одновременно обрабатывать тысячи подключений, не нагружая при этом программиста задачами по управлению потоками и по организации параллельного выполнения кода. Подобные вещи часто являются источниками ошибок.
Node.js предоставляет разработчику неблокирующие базовые механизмы ввода вывода, и, в целом, библиотеки, использующиеся в среде Node.js, написаны с использованием неблокирующих парадигм. Это делает блокирующее поведение кода скорее исключением, чем нормой.
Когда Node.js нужно выполнить операцию ввода-вывода, вроде загрузки данных из сети, доступа к базе данных или к файловой системе, вместо того, чтобы заблокировать ожиданием результатов такой операции главный поток, Node.js инициирует её выполнение и продолжает заниматься другими делами до тех пор, пока результаты выполнения этой операции не будут получены.
▍Библиотеки
Благодаря простоте и удобству работы с менеджером пакетов для Node.js, который называется npm, экосистема Node.js прямо-таки процветает. Сейчас в реестре npm имеется более полумиллиона опенсорсных пакетов, которые может свободно использовать любой Node.js-разработчик.
Рассмотрев некоторые основные особенности платформы Node.js, опробуем её в действии. Начнём с установки.
Установка Node.js
Node.js можно устанавливать различными способами, которые мы сейчас рассмотрим.
Так, официальные установочные пакеты для всех основных платформ можно найти здесь.
Существует ещё один весьма удобный способ установки Node.js, который заключается в использовании менеджера пакетов, имеющегося в операционной системе. Например, менеджер пакетов macOS, который является фактическим стандартом в этой области, называется Homebrew. Если он в вашей системе есть, вы можете установить Node.js, выполнив эту команду в командной строке:
Список менеджеров пакетов для других операционных систем, в том числе — для Linux и Windows, можно найти здесь.
Популярным менеджером версий Node.js является nvm. Это средство позволяет удобно переключаться между различными версиями Node.js, с его помощью можно, например, установить и попробовать новую версию Node.js, после чего, при необходимости, вернуться на старую. Nvm пригодится и в ситуации, когда нужно испытать какой-нибудь код на старой версии Node.js.
Я посоветовал бы начинающим пользоваться официальными установщиками Node.js. Пользователям macOS я порекомендовал бы устанавливать Node.js с помощью Homebrew. Теперь, после того, как вы установили Node.js, пришло время написать «Hello World».
Первое Node.js-приложение
Самым распространённым примером первого приложения для Node.js можно назвать простой веб-сервер. Вот его код:
Для того чтобы запустить этот код, сохраните его в файле server.js и выполните в терминале такую команду:
Разберём этот пример.
Для начала, обратите внимание на то, что код содержит команду подключения модуля http.
Платформа Node.js является обладателем замечательного стандартного набора модулей, в который входят отлично проработанные механизмы для работы с сетью.
Метод createServer() объекта http создаёт новый HTTP-сервер и возвращает его.
Сервер настроен на прослушивание определённого порта на заданном хосте. Когда сервер будет готов, вызывается соответствующий коллбэк, сообщающий нам о том, что сервер работает.
Первый предоставляет в наше распоряжение сведения о запросе. В нашем простом примере этими данными мы не пользуемся, но, при необходимости, с помощью объекта req можно получить доступ к заголовкам запроса и к переданным в нём данным.
Второй нужен для формирования и отправки ответа на запрос.
Далее, мы устанавливаем заголовок Content-Type :
После этого мы завершаем подготовку ответа, добавляя его содержимое в качестве аргумента метода end() :
Мы уже говорили о том, что вокруг платформы Node.js сформировалась мощная экосистема. Обсудим теперь некоторые популярные фреймворки и вспомогательные инструменты для Node.js.
Фреймворки и вспомогательные инструменты для Node.js
Node.js — это низкоуровневая платформа. Для того чтобы упростить разработку для неё и облегчить жизнь программистам, было создано огромное количество библиотек. Некоторые из них со временем стали весьма популярными. Вот небольшой список библиотек, которые я считаю отлично сделанными и достойными изучения:
Краткая история Node.js
В этом году Node.js исполнилось уже 9 лет. Это, конечно, не так уж и много, если сравнить этот возраст с возрастом JavaScript, которому уже 23 года, или с 25-летним возрастом веба, существующем в таком виде, в котором мы его знаем, если считать от появления браузера Mosaic.
9 лет — это маленький срок для технологии, но сейчас возникает такое ощущение, что платформа Node.js существовала всегда.
Я начал работу с Node.js с ранних версий платформы, когда ей было ещё только 2 года. Даже тогда, несмотря на то, что информации о Node.js было не так уж и много, уже можно было почувствовать, что Node.js — это очень серьёзно.
Теперь поговорим о технологиях, лежащих в основе Node.js и кратко рассмотрим основные события, связанные с этой платформой.
Итак, JavaScript — это язык программирования, который был создан в Netscape как скриптовый язык, предназначенный для управления веб-страницами в браузере Netscape Navigator.
Руководство для начинающих по серверной веб-разработке с Node.js
Большую часть своей веб-карьеры я работал исключительно на стороне клиента. Проектирование адаптивных макетов, создание визуализаций из больших объемов данных, создание инструментальных панелей приложений и т. Д. Но мне никогда не приходилось иметь дело с маршрутизацией или HTTP-запросами напрямую. До не давнего времени.
Этот пост представляет собой описание того, как я узнал больше о веб-разработке на стороне сервера с помощью Node.js, и краткое сравнение написания простого HTTP-сервера с использованием 3 разных сред, Express, Koa.js и Hapi.js.
Примечание: если вы опытный разработчик Node.js, вы, вероятно, подумаете о том, что это все элементарно/просто. ¯\_(ツ)_/¯.
Некоторые основы сети
Когда я начал работать в веб-индустрии пару лет назад, я наткнулся на курс по компьютерным сетям профессора Дэвида Ветерала на Coursera. К сожалению, он больше не доступен, но лекции по-прежнему доступны на веб-сайте Pearson.
Мне очень понравился этот курс, потому что он объяснял, что происходило под капотом, в понятной форме, поэтому, если вы можете взять в руки учебник «Компьютерные сети», прочитайте все подробности о чудесах сети.
Здесь, однако, я собираюсь лишь кратко рассказать о контексте. HTTP (Hypertext Transfer Protocol) — это протокол связи, используемый в компьютерных сетях. В Интернете их много, таких как SMTP (простой протокол передачи почты), FTP (протокол передачи файлов), POP3 (протокол почтового отделения 3) и так далее.
Эти протоколы позволяют устройствам с совершенно разным аппаратным / программным обеспечением связываться друг с другом, поскольку они предоставляют четко определенные форматы сообщений, правила, синтаксис и семантику и т.д. Это означает, что, пока устройство поддерживает определенный протокол, оно может связываться с любым другим устройством. в сети.
От TCP / IP против OSI: в чем разница между двумя моделями?
Операционные системы обычно поставляются с поддержкой сетевых протоколов, таких как HTTP, из коробки, что объясняет, почему нам не нужно явно устанавливать какое-либо дополнительное программное обеспечение для доступа в Интернет. Большинство сетевых протоколов поддерживают открытое соединение между двумя устройствами, что позволяет им передавать данные туда и обратно.
HTTP, на котором работает сеть, отличается. Он известен как протокол без установления соединения, потому что он основан на режиме работы запрос / ответ. Веб-браузеры отправляют на сервер запросы на изображения, шрифты, контент и т.д., но после выполнения запроса соединение между браузером и сервером разрывается.
Servers and Clients
Термин сервер может слегка сбивать с толку людей, впервые знакомых с отраслью, поскольку он может относиться как к аппаратному обеспечению (физические компьютеры, на которых размещены все файлы и программное обеспечение, требуемое веб-сайтами), так и к программному обеспечению (программе, которая позволяет пользователям получать доступ к этим файлам в Интернете).
Сегодня мы поговорим о программной стороне вещей. Но сначала несколько определений. URL обозначает Universal Resource Locator и состоит из 3 частей: протокола, сервера и запрашиваемого файла.
Структура URL адреса
Протокол HTTP определяет несколько методов, которые браузер может использовать, чтобы попросить сервер выполнить кучу различных действий, наиболее распространенными из которых являются GET и POST. Когда пользователь щелкает ссылку или вводит URL-адрес в адресную строку, браузер отправляет GET-запрос на сервер для получения ресурса, определенного в URL-адресе.
Сервер должен знать, как обрабатывать этот HTTP-запрос, чтобы получить правильный файл, а затем отправить его обратно браузеру, который его запросил. Наиболее популярное программное обеспечение веб-сервера, которое обрабатывает это Apache и NGINX.
Веб-серверы обрабатывают входящие запросы и отвечают на них соответственно
Оба представляют собой полнофункциональные пакеты программного обеспечения с открытым исходным кодом, которые включают в себя такие функции, как схемы аутентификации, перезапись URL-адресов, ведение журнала и проксирование, и это лишь некоторые из них. Apache и NGINX написаны на C. Технически, вы можете написать веб-сервер на любом языке. Python, golang.org/pkg/net/http, Ruby, этот список может продолжаться довольно долго. Просто некоторые языки лучше выполняют определенные вещи, чем другие.
Создание HTTP сервера с Node.js
Node.js — это среда выполнения Javascript, построенная на движке Chrome V8 Javascript. Он поставляется с модулем http, который предоставляет набор функций и классов для построения HTTP-сервера.
Для этого базового HTTP-сервера мы также будем использовать файловую систему, путь и URL-адрес, которые являются собственными модулями Node.js.
Начните с импорта необходимых модулей.
Мы также создадим словарь типов MIME, чтобы мы могли назначить соответствующий тип MIME запрашиваемому ресурсу на основе его расширения. Полный список типов MIME можно найти в Internet Assigned Numbers Authority (интернет-центре назначенных номеров).
Мы передадим функцию-обработчик запроса в createServer() с объектами запроса и ответа. Эта функция вызывается один раз каждый раз, когда к серверу поступает HTTP-запрос.
Объект request является экземпляром IncomingMessage и позволяет нам получать доступ ко всей информации о запросе, такой как статус ответа, заголовки и данные.
Объект response является экземпляром ServerResponse, который является записываемым потоком и предоставляет множество методов для отправки данных обратно клиенту.
В обработчике запросов мы хотим сделать следующее:
Весь код размещен на Glitch, и вы можете сделать ремикс на проект, если хотите.
Создание HTTP-сервера с фреймворками Node.js
Фреймворки Node.js, такие как Express, Koa.js и Hapi.js, поставляются с различными полезными функциями промежуточного программного обеспечения, в дополнение к множеству других удобных функций, которые избавляют разработчиков от необходимости писать самим.
Лично я чувствую, что лучше сначала изучать основы без фреймворков, просто для понимания того, что происходит под капотом, а затем после этого сходить с ума с любым фреймворком, который вам нравится.
В Express имеется собственный встроенный плагин для обслуживания статических файлов, поэтому код, необходимый для выполнения тех же действий, что и в собственном Node.js, значительно короче.
У каждой из этих платформ есть свои плюсы и минусы, и они будут более очевидными для более крупных приложений, а не просто для обслуживания одной HTML-страницы. Выбор структуры будет сильно зависеть от реальных требований проекта, над которым вы работаете.
Node.js для начинающих
Russian (Pусский) translation by Ilya Nikov (you can also view the original English article)
Программирование, управляемое событиями, может показаться немного ошеломляющим для начинающих, что весьма затрудняет работу с Node.js. Но не позволяйте этому оттолкнуть вас; в этой статье я расскажу вам некоторые основы Node.js и объясню, почему он стал настолько популярным.
Введение
Чтобы начать использовать Node.js, вы должны сначала понять различия между Node.js и традиционными средами сценариев на стороне сервера (например: PHP, Python, Ruby и т.д.).
Асинхронное программирование
Node.js использует модульную архитектуру для упрощения создания сложных приложений.
Скорее всего, вы знакомы с асинхронным программированием; это, в конце концов, «А» в Ajax. Каждая функция в Node.js является асинхронной. Следовательно, все, что обычно блокирует поток, вместо этого выполняется в фоновом режиме. Это самое важное, что нужно помнить о Node.js. Например, если вы читаете файл в файловой системе, вы должны указать функцию обратного вызова, которая выполняется, когда операция чтения будет завершена.
Вы делаете все!
И вот эквивалент, написанный на PHP:
Теперь давайте посмотрим на эти числа. В следующей таблице перечислено время ответа в миллисекундах для этих двух простых приложений:
Количество итераций | Node.js | PHP |
100 | 2,00 | 0,14 |
10’000 | 3,00 | 10,53 |
1’000’000 | 15.00 | 1119,24 |
10’000’000 | 143,00 | 10621,46 |
1’000’000’000 | 11118,00 | 1036272,19 |
Я выполнил два приложения из командной строки, чтобы сервер не задерживал выполнение приложений. Я провел каждый тест десять раз и усреднил результаты. PHP заметно быстрее с меньшим количеством итераций, но это преимущество быстро растворяется по мере увеличения количества итераций. Когда все сказано и сделано, PHP на 93% медленнее, чем Node.js!
Node.js работает быстро, но вам нужно изучить несколько вещей, чтобы правильно его использовать.
Модули
Node.js использует модульную архитектуру для упрощения создания сложных приложений. Модули сродни библиотекам в C или юнитам в Паскале. Каждый модуль содержит набор функций, связанных с «объектом» модуля. Например, http модуль содержит функции, специфичные для HTTP. Node.js предоставляет несколько основных модулей из коробки, чтобы помочь вам получить доступ к файлам в файловой системе, создать HTTP и TCP / UDP-серверы и выполнять другие полезные функции.
Глобальная область видимости
Еще раз, по возможности, следует избегать глобальной области видимости. Поэтому будьте осторожны и не забывайте использовать var при объявлении переменной.
Установка
Естественно, нам нужно установить Node, прежде чем мы сможем написать и выполнить приложение. Установка выполняется довольно просто, если вы используете Windows или OS X; сайт nodejs.org предлагает инсталляторы для этих операционных систем. Для Linux используйте любой менеджер пакетов. Откройте терминал и введите:
Node.js находится в sid-репозиториях; вам может потребоваться добавить их в список источников:
Но имейте в виду, что установка пакетов sid на более старых системах может привести к повреждению вашей системы. Будьте осторожны и удалите /etc/apt/sources.list.d/sid.list после завершения установки Node.
Установка новых модулей
У Node.js есть менеджер пакетов, называемый Node Package Manager (NPM). Он автоматически устанавливается с помощью Node.js, и затем вы используете NPM для установки новых модулей. Чтобы установить модуль, откройте терминал/командную строку, перейдите в нужную папку и выполните следующую команду:
Неважно, какая у вас ОС; указанная выше команда установит модуль, который вы укажете вместо module_name.
Приложение Hello World
Естественно, наш первый скрипт Node.js напечатает текст « Hello World! » на консоль. Создайте файл hello.js и введите следующий код:
Теперь давайте выполним сценарий. Откройте терминал/командную строку, перейдите к папке, содержащей hello.js, и выполните следующую команду:
Вы должны увидеть как ‘Hello World!’ отображается в консоли.
HTTP-сервер
Перейдем к более продвинутому приложению; но оно не такое уж сложное, как вы думаете. Давайте начнем со следующего кода. Прочитайте комментарии, а затем объяснение ниже:
Обработка URL-параметров
Как я упоминал ранее, в Node мы должны делать все сами, включая парсинг аргументов запроса. Это, однако, довольно просто. Взгляните на следующий код:
Затем перейдите по адресу http://localhost:8080/?Data=put_some_text_here в вашем браузере. Естественно, изменение значения параметра data не нарушит сценарий.
Чтение и запись файлов
У Node.js есть менеджер пакетов, называемый Node Package Manager (NPM). Он автоматически устанавливается с помощью Node.js
Сохраните это как files.js. Перед запуском этого сценария создайте файл с именем test.txt в том же каталоге, что и files.js.
Запись в файл, по крайней мере в этом случае, намного проще. Нам не нужно ждать каких-либо результатов, хотя вы будете проверять наличие ошибок в реальном приложении. Метод fs.writeFile() принимает имя файла и данные в качестве аргументов. Он также принимает третий и четвертый аргументы (оба являются необязательными), чтобы указать кодировку и функцию обратного вызова соответственно.
Теперь давайте запустим этот скрипт со следующей командой:
Откройте его в браузере ( http://localhost:8080 ) и обновите его несколько раз. Теперь вы можете подумать, что в коде есть ошибка, потому что кажется, что число увеличивается на два. Это не ошибка. Каждый раз, когда вы запрашиваете этот URL-адрес, на сервер отправляются два запроса. Первый запрос автоматически создается браузером, который запрашивает favicon.ico, и, конечно, второй запрос для URL ( http://localhost:8080 ).
Хотя это поведение технически не является ошибкой, но мы такого не хотим. Мы можем легко это исправить, проверив URL-адрес запроса. Вот поправленный код:
Попробуйте теперь; этот код должен работать должным образом.
Доступ к базам данных MySQL
Она загружает и устанавливает модуль, а также создает папку node_modules в текущем каталоге. Теперь давайте посмотрим, как мы можем использовать его в нашем коде; см. следующий пример:
Сохраните этот файл как mysql.js и выполните его (если у вас установлен MySQL):
Откройте адрес http://localhost:8080 в своем браузере, и вам будет предложено загрузить файл в формате JSON.
Заключение
Каждая функция в Node.js является асинхронной.
Node.js требует дополнительной работы, но выигрыш в быстром и надежном приложении стоит того. Если вы не хотите делать все на самом низком уровне, вы всегда можете выбрать фреймворк, как например Express, чтобы упростить разработку приложений.
Не забудьте оставить комментарий, если у вас есть вопросы!