Wordpress и веб-разработка

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

Что такое 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?

Во-первых, для производительности и масштабируемости. Узел быстрый. Это довольно важное требование, когда вы начинающий предприниматель, пытаетесь сделать следующую крупную вещь и хотите убедиться, что вы можете быстро масштабироваться, справляясь с наплывом пользователей по мере роста вашего сайта. 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? Хорошо. Иди и сделай следующий твиттер! Вы, вероятно, также захотите получить хорошее представление о библиотеке Javascript. о интерфейсе.

Похожие посты
Wordpress и веб-разработка

Добавить красивые слайд-шоу в сообщения WordPress с помощью SlideDeck

Wordpress и веб-разработка

Сделайте свой WordPress блог iPad удобным с Onswipe

Wordpress и веб-разработка

Как создать карту изображения с помощью GIMP

Wordpress и веб-разработка

WordPress: еще 3 скрытых жемчужины в наборе плагинов Jetpack, а также обновлено приложение WordPress!