#javascript #linux
#javascript #linux
Вопрос:
Я начинаю использовать nodejs и socket.io …
Это чистый javascript или мне нужно изучить фреймворк, такой как jQuery или MOntools?
Спасибо!
Комментарии:
1. Mootools, Jquery — все это чистый javascript
Ответ №1:
node.js это чистый javascript.
Да, вам действительно нужно научиться node.js потому что это ваша библиотека ввода-вывода на стороне сервера. И нет, вам не нужно изучать jQuery или MooTools для разработки на стороне сервера.
В пределах node.js сообщество большое внимание уделяется использованию сторонних библиотек для достижения того, чего вы хотите. В настоящее время для node не созданы фреймворки.
Пара библиотек, которые стоит изучить, это
- выразить маршрутизацию, механизм просмотра и контроллеры (половина MVC)
Express — это облегченная библиотека MVC, которая создается поверх connect. Это дает вам доступ к библиотеке маршрутизации и механизму просмотра. При использовании в сочетании с EJS или Jade это позволит вам настроить свой node.js код для индивидуальной обработки входящих маршрутов и рендеринга данных из шаблонов. Я бы также рекомендовал посмотреть на express-controllers, которые являются отличным способом обработки маршрутизации ваших URL-адресов в стиле REST.
- теперь библиотека websocket
теперь это абстракция поверх socket.io . Он предлагает «общее» пространство имен между клиентом и сервером. Это делает RPC тривиальным. Просто объявите функцию как свойство now на сервере и вызовите ее с клиента. Теперь обрабатывает весь сокет.для вас связь ввода-вывода.
- cradle Библиотека базы данных
Cradle — это абстракция, которая позволяет вам взаимодействовать с couchdb. Если вы собираетесь использовать node, я рекомендую вам использовать базу данных NoSQL, такую как couch или mongodb (попробуйте mongoose, если вы используете mongo).
- подчеркивание Общая утилита для упрощения жизни
Потрясающая библиотека утилит, которая позволяет вам писать код в функциональном стиле (думаю, на Python или ruby). Это настоятельно рекомендуется, хотя большинство функций уже являются частью ES5. Использование этого на клиенте для эмуляции ES5 также является большим преимуществом
- основа Коллекций и моделей (другая половина MVC)
Backbone — это облегченная абстракция MVC. Это позволяет вам использовать более широко известные конструкции MVC. Для node.js сам по себе я бы рекомендовал использовать Backbone.Model
и Backbone.Collection
и иметь express, обрабатывающий рендеринг представления (но заполняющий представления данными из коллекций и моделей). Вы также можете легко перезаписать Backbone.Sync
для взаимодействия с выбранной вами абстракцией базы данных, которая практически превращает Backbone в ORM. Надежной альтернативой был бы Spine
- фьючерсы библиотеку управления потоком
Futures предоставляет вам promises API. Это отлично подходит для написания управляемого читаемого кода. Это также останавливает вас от вложения обратных вызовов на 5 уровней глубиной. Сама библиотека обширна. Он также предоставляет хорошие абстракции для последовательного выполнения асинхронных обратных вызовов и для их параллельного выполнения с обработчиком обратного вызова в конце.
3 месяца спустя
После выполнения нескольких проектов я бы все же рекомендовал express. Однако.
Я не рекомендую
- итак. Почему? Это мешает, оно протекает. Используйте сокет.вместо этого ввод-вывод.
- cradle. Почему? В нем есть ошибки в крайнем случае, которые являются кошмаром для отладки, вместо этого используйте request.
- подчеркивание. Почему? Это просто не нужно. ES5 достаточно выразителен
- магистраль /spine. Почему? Это утечка, это мешает. Он просто не предназначен для сервера
- фьючерсы. Почему? Это перебор. вам это не нужно. Вместо этого используйте after.
- экспресс-контроллеры. Это непрочная абстракция, она не работает.
Вещи, которые я бы порекомендовал.
- модульные тесты (клятвы-это)
- горячая перезагрузка кода (навсегда/nodemon)
- масштабируемая архитектура (кластер/hook.io
Ответ №2:
jQuery, MooTools и Node.js все ли «чистые» Javascript, если это то, о чем вы спрашиваете. Однако все они также являются библиотеками, и вам действительно придется изучить их API.
Вы можете найти документацию для Node.js здесь.
Комментарии:
1. jQuery не является фреймворком. node.js это фреймворк на толчке. (Это библиотеки). «все они .. нужно учиться». Нет абсолютно никакой причины изучать оба MooTools или jQuery .
2. @Raynos, правда, я по какой-то причине имитировал использование
framework
задавшим здесь вопрос. Это действительно библиотеки, ответ обновлен соответствующим образом. Спасибо 🙂3. Вам все еще не следует рекомендовать, чтобы он изучал оба jQuery и MooTools (что просто глупо)
4. @Raynos, я не предлагаю, чтобы он это сделал, это действительно было бы глупо 🙂 Я просто указываю, что спрашивающему придется изучить API в дополнение к основному языку Javascript, чтобы использовать любой из них. Мое предложение настолько слабо построено, что не очевидно? 🙂