Статьи

Как очистить веб-страницы с помощью Node.js и jQuery

Node.js быстро растет; Одна из главных причин этого — спасибо разработчикам, которые создают удивительные инструменты, которые значительно повышают производительность с Node. В этой статье мы рассмотрим базовую установку Express, среду разработки и создание базового проекта с ее помощью.


По своему дизайну Node похож на системы типа Ruby’s Event Machine или Python Twisted и на них влияют. Node продвигает модель событий немного дальше — он представляет цикл событий в виде языковой конструкции, а не в виде библиотеки.

В этом руководстве мы очистим домашнюю страницу YouTube, получим все миниатюры обычного размера со страницы, а также ссылки и продолжительность видео, отправим все эти элементы в шаблон jQueryMobile и воспроизведем видео с помощью встраивания YouTube (который выполняет отличная работа по обнаружению медиа поддержки устройств (flash / html5-video).

Мы также узнаем, как начать использовать npm и Express , процесс установки модулей npm, базовую маршрутизацию Express и использование двух модулей Node: request и jsdom .

Для тех из вас, кто еще не знаком с Node.js и тем, как его установить, обратитесь к домашней странице node.js.
и страницу проекта npm GitHub .

Вам также следует обратиться к нашей серии « Node.js: шаг за шагом ».

Примечание. Это руководство требует и предполагает, что вы понимаете, что такое Node.js, и что у вас уже установлены node.js и npm.


Так что же такое Express? По словам его разработчиков, это ..

Безумно быстрая (и маленькая) серверная среда веб-разработки JavaScript, основанная на Node и Connect.

Звучит круто, правда? Давайте использовать npm для установки Express. Откройте окно терминала и введите следующую команду:

1
npm install express -g

-g в качестве параметра команде install, мы сообщаем npm сделать глобальную установку модуля.

Я использую /home/node-server/nettuts для этого примера, но вы можете использовать все, что вам удобно.

После создания нашего экспресс-проекта нам нужно isntruct npm для установки экспресс-зависимостей.

1
2
cd nodetube
npm install -d

Если это заканчивается «хорошо», тогда вы можете идти. Теперь вы можете запустить свой проект:

1
node app.js

В вашем браузере перейдите на http://localhost:3000 .


Реализация JavaScript W3C DOM.

Вернитесь к своему терминалу и после остановки текущего сервера (ctr + c) установите jsdom :

1
npm install jsdom

Упрощенный метод HTTP-запроса.

Введите следующее в Терминал:

1
npm install request

Все должно быть настроено сейчас. Теперь пришло время перейти к какому-то актуальному коду!


Во-первых, давайте включим все наши зависимости. Откройте файл app.js и в самых первых строках добавьте следующий код:

Вы заметите, что Express создал некоторый код для нас. То, что вы видите в app.js является самой базовой структурой для сервера Node, использующего Express. В нашем предыдущем блоке кода мы указали Express, чтобы он включал наши недавно установленные модули: jsdom и request . Кроме того, мы включили модуль URL, который поможет нам проанализировать URL-адрес видео, который мы вычеркнем из YouTube позже.

В app.js найдите раздел «Маршруты» (около строки 40) и добавьте следующий код (прочитайте комментарии, чтобы понять, что происходит):

В этом случае мы загружаем контент с домашней страницы YouTube. По завершении мы печатаем текст, содержащийся в теге заголовка страницы (<title>). Вернитесь в Терминал и снова запустите ваш сервер.

1
node app.js

В вашем браузере перейдите по http://localhost:3000/nodetube

Вы должны увидеть «YouTube — Broadcast Yourself», который является названием YouTube.

Теперь, когда у нас все настроено и работает, пришло время получить несколько URL-адресов видео. Перейдите на домашнюю страницу YouTube и щелкните правой кнопкой мыши любую миниатюру в разделе «рекомендуемые видео». Если у вас установлен Firebug (что настоятельно рекомендуется), вы должны увидеть что-то вроде следующего:

Есть шаблон, который мы можем определить и который присутствует почти во всех других обычных видео-ссылках:

1
2
div.vide-entry
span.clip

Давайте сосредоточимся на этих элементах. Вернитесь к своему редактору и в app.js добавьте следующий код в маршрут /nodetube :

Пришло время перезапустить наш сервер еще раз и перезагрузить страницу в нашем браузере (http: // localhost: 3000 / nodetube). В вашем терминале вы должны увидеть что-то вроде следующего:

Это выглядит хорошо, но нам нужен способ отобразить наши результаты в браузере. Для этого я буду использовать шаблонизатор Jade :

Jade — это высокопроизводительный шаблонизатор, находящийся под сильным влиянием Haml, но реализованный с помощью JavaScript для Node.

В вашем редакторе откройте views/layout.jade , который является базовой структурой макета, используемой при визуализации страницы с помощью Express. Это хорошо, но нам нужно немного его изменить.

Если вы сравните приведенный выше код с кодом по умолчанию в layout.jade , вы заметите, что изменилось несколько вещей — doctype, метатег viewport, теги style и script, предоставленные jquery.com. Давайте создадим наш вид списка:

Прежде чем мы начнем, пожалуйста, просмотрите документацию jQuery Mobile (JQM отныне) по макетам страниц и анатомии .

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

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

Это все, что нам нужно для создания нашего списка. Вернитесь в app.js и замените следующий код:

с этим:

Перезагрузите сервер еще раз и перезагрузите браузер:

Примечание. Поскольку мы используем jQuery Mobile, я рекомендую использовать браузер на основе Webkit или мобильный телефон (симулятор) для iPhone / Android для достижения лучших результатов.


Давайте создадим представление для нашего маршрута /watch . Создайте views/video.jade и добавьте следующий код:

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


Есть способы, которыми мы можем поддерживать наш сервер в фоновом режиме, но я предпочитаю один, называемый Forever , модуль узла, который мы можем легко установить с помощью npm :

1
npm install forever -g

Это будет глобально установить навсегда. Давайте запустим наше приложение nodeTube:

1
forever start app.js

Вы также можете перезагрузить свой сервер, использовать пользовательские файлы журналов, передавать переменные среды среди других полезных вещей:

1
2
//run your application in production mode
NODE_ENV=production forever start app.js

Я надеюсь, что я продемонстрировал, как легко начать использовать Node.js, Express и npm. Кроме того, вы узнали, как устанавливать модули Node, добавлять маршруты в Express, извлекать удаленные страницы с помощью модуля Request и много других полезных техник.

Если у вас есть какие-либо комментарии или вопросы, пожалуйста, дайте мне знать в разделе комментариев ниже!