Что такое Node.JS и почему мне это нужно? [Веб-разработка]

признакам узлаJavaScript — это просто клиентский язык программирования, который работает в браузере, верно? Уже нет. Node.js — это способ запуска JavaScript на сервере; но это гораздо больше. Если вы вообще интересуетесь веб-разработкой, вам действительно следует немного узнать об Node и о том, почему он делает волну в сообществе.

Что такое Node.js?

Node — это интерфейс к среде исполнения V8 JavaScript — сверхбыстрый интерпретатор JavaScript, который работает в браузере Chrome. Как это бывает, вы также можете скачать V8 и встроить его во что угодно; Node делает это для веб-серверов. В конце концов, JavaScript — это всего лишь язык — ничто не говорит о том, что его нельзя использовать ни на сервере, ни в браузере пользователя. В типичном стеке серверов LAMP

у вас есть базовый веб-сервер Apache или NGINX, а поверх него работает PHP. Каждое новое подключение к серверу порождает новый поток, и очень легко быстро потерять производительность или отключить сайт — единственный способ поддержать больше пользователей — добавить больше серверов. Это просто плохо масштабируется. С Node это не так. Apache не может прослушивать входящие соединения и возвращать коды состояния HTTP — вам придется самостоятельно обрабатывать архитектуру главного сервера. К счастью, есть модули, которые делают это проще, но это может все еще быть немного подавляющим, когда вы начинаете. Результатом, однако, является высокопроизводительное веб-приложение.

Klout - веб-приложение социальной статистики, созданное на основе Node.js для высокой производительностиKlout — веб-приложение социальной статистики, созданное на основе Node.js для высокой производительности

JavaScript это язык событий

поэтому все, что происходит на сервере, вызывает неблокирующее событие. Каждое новое соединение запускает событие; данные, полученные из формы загрузки, запускают событие получения данных; запрос данных из базы данных вызывает событие. На практике это означает, что сайт Node никогда не заблокируется и может поддерживать десятки тысяч одновременно работающих пользователей. Node.js играет роль сервера — Apache — и интерпретирует код приложения, запускаемый поверх него. Как и в Apache, существуют различные модули (библиотеки), которые могут быть установлены для добавления функций и возможностей, таких как хранилища данных, поддержка Zip-файлов, логин Facebook или платежные шлюзы. Конечно, их не так много, как для PHP, но Node все еще находится на ранних стадиях, и за ним стоит сильное сообщество. Основная концепция Node — это асинхронные функции, поэтому все работает в фоновом режиме. В большинстве языков сценариев на стороне сервера программа должна подождать, пока каждая функция завершится, прежде чем перейти к следующей. С помощью Node вы указываете функции, которые должны запускаться при завершении чего-то другого, в то время как остальная часть вашего приложения движется дальше. Это сложная тема, которую я не буду вдаваться в подробности сегодня, но одна из тех характеристик, которые определяют Node, поэтому важно понять ее. Тем не менее, достаточно чата — вот пример HTTP-сервера Hello World, чтобы дать краткое представление о некоторых из этих концепций.


var http = require("http");
http.createServer(function (request, response) {
response.writeHead(200, {
'Content-Type': 'text/plain'
});
response.write('Hello World!');
response.end();
}).listen(8080);
console.log("Server running!");

Давайте попробуем сломать это. Во-первых, мы включаем модуль http в проекте. Затем мы создаем сервер и передаем анонимную функцию в качестве параметра — эта функция будет вызываться для каждого нового установленного соединения. Требуется два аргумента — запрос, содержащий параметры запроса от пользователя; а также ответ, который мы будем использовать для отправки вещей обратно. Затем мы используем объект ответа для обратной записи пользователю заголовка с HTTP-кодом ответа 200 («ок») и типом контента, написания сообщения «Hello World!» И завершения ответа. Наконец, мы просим сервер прослушивать порт 8080 для входящих запросов и выводить быстрое сообщение на консоль (командную строку), чтобы сообщить нам, что он работает. Если вы действительно хотите попробовать это сами, сохраните приведенный выше код как test.js, скачайте установщик Node и из командной строки запустите —

node test.js

Откройте браузер и перейдите к localhost: 8080, чтобы увидеть ваше тестовое приложение! Теперь вы должны иметь небольшое представление о том, как работает вся эта асинхронная вещь, наряду с моделями, управляемыми событиями. Если вы новичок в JavaScript, концепция передачи функций в качестве аргументов другим функциям, вероятно, немного странная.

Зачем использовать Node?

Во-первых, для производительности и масштабируемости. Узел быстрый. Это довольно важное требование, когда вы начинающий предприниматель, пытаетесь сделать следующую большую вещь и хотите убедиться, что вы можете быстро масштабироваться, справляясь с наплывом пользователей по мере роста вашего сайта. Узел также идеально подходит для предложения RESTful API — веб-сервис, который принимает несколько входных параметров и передает немного данных — простое манипулирование данными без огромного количества вычислений. Node может обрабатывать тысячи таких одновременно, когда PHP просто рухнет. Помимо преимуществ в плане производительности и масштабируемости, есть хороший шанс, что вы уже знаете немного JavaScript, так зачем же изучать совершенно новый язык, такой как PHP? И затем — волнение изучения чего-то нового и относительно неизведанного. Вы знаете, когда что-то новое приходит и затем становится настолько вездесущим, что вы сожалеете, что не узнали этого раньше, навсегда играя в догонялки? Не делай этого на этот раз. Узел будет большим.

Downsides

Как и большинство новых технологий, развернуть Node на существующих хостах не так просто. Если у вас есть общий веб-хостинг, вы не можете просто загрузить приложение Node и ожидать, что оно будет работать. VPS и выделенные серверы лучше расположены — на них можно установить Node. Еще проще использовать масштабируемый сервис, такой как Heroku, на котором можно совершенно бесплатно разрабатывать свой сайт — платить нужно только тогда, когда вам нужно больше ресурсов. Я привел пример использования Heroku прежде, когда мы использовали его для создания фангейта на Facebook, но его можно использовать и для Node. С другой стороны, очень легко установить Node локально на ПК с Windows, Mac или Linux и сразу начать разработку — просто зайдите на Download Node. Также важно отметить, что Node — это не просто замена Apache — существующие веб-приложения несовместимы, и вы будете эффективно работать с нуля (хотя существует множество платформ, которые помогут вам с общими функциями). Другим важным недостатком узла является то, что он все еще находится на ранних стадиях разработки, что означает, что некоторые функции могут изменяться по мере развития. Фактически, если вы посмотрите на документацию, она включает в себя индекс стабильности, который показывает, насколько рискованно использовать каждую функцию в настоящее время. стабильность Вы знаете — никогда не было так захватывающе быть веб-разработчиком. С открытыми веб-сервисами и обменом данными сделать что-то удивительное проще, чем когда-либо. Вы думаете об изучении Node? Хорошо. Выйди и сделай следующий твиттер! Вы, вероятно, также захотите получить хорошее представление о библиотеке jQuery Javascript

для переднего конца.

Ссылка на основную публикацию
Adblock
detector