Какой технологический стек (модули, фреймворки) лучше для первого проекта node.js, чтобы изучить узел и сделать хороший продукт?

Год назад я сделал несколько маленьких шагов в узле. Уже тогда было множество модулей и фреймворков. Теперь я хочу глубже изучить среду узлов и начать проект, основанный на веб-технологиях (сервис для веб-приложений и мобильных приложений). Я понимаю, что многое зависит от того, какое приложение вы пишете, но в нем всегда есть какая-то основа.

На данный момент я хотел бы знать:

  1. Лучше начать с нуля или взять какую-то структуру (которая, по вашему мнению)?
  2. Какие модули имеют первостепенное значение? На какие модули стоит обратить внимание в первую очередь?
  3. Какие базы данных и модули вы предпочитаете?
  4. Я слышал, что вы можете написать в coffeescript для узла. Что я должен сделать для этого? Или, может быть, лучше использовать JavaScript?
  5. О некоторых полезных книгах и учебных пособиях об узле в действии.

Все эти вопросы довольно широки, но ответы будут очень полезны для всех начинающих

Спасибо)

4 ответа

Решение

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

  1. Сложность вашего проекта диктует подход, как обычно. Если вы хотите изучить весь спектр тонкостей Node, вы можете создавать с нуля и просто использовать соответствующие библиотеки (такие как абстракция на уровне соединения и базы данных, такие как cradle или mongoose, подробнее в Ответе 2), когда вам нужно их.

    Если вы хотите иметь кодовую базу, из которой можно найти работоспособные решения, вам следует обратиться к платформе Express (построенной на соединении), так как она кажется наиболее распространенной среди разработчиков узлов. Многие учебные сайты предоставляют простые примеры, которые включают эту платформу. Модуль Богарт будет делать то же самое, но это не так публично известно.

  2. Помимо Express, вы можете захотеть взглянуть на систему шаблонов для вывода HTML. Я бы предложил Джейд для этого. Я объясню, почему в ответе 4. Альтернативой будет Усы или EJS.

    Тогда вам следует проверить колыбель или мангуст, так как эти модули понадобятся для удобного доступа к БД. Теперь, когда основные функциональные возможности и БД охвачены, вы можете заглянуть в модули LESS или SASS для магии CSS.

    Аутентификация может выполняться каждым пользователем, она поддерживает Twitter, Facebook и многие другие функции.

  3. Я думаю, что уже рассмотрел модули в 2., так что теперь на вопрос БД. Мне очень понравилось работать с MongoDB, и вы можете легко пойти на это и найти много документации и лучших практик в Интернете. Я сам нашел CouchDB гораздо более интересным, поскольку он предоставляет фантастический доступ на основе API, а его ключевая фраза - "Relax". - но это не так важно. Пока вы понимаете NoSQL-подход, который управляет монго и кушеткой, вы можете использовать любой из них. Я настоятельно рекомендую избегать традиционных баз данных на основе SQL, поскольку форматированные в JSON выходные данные систем баз данных NoSQL легко интегрируются в JavaScript-среду Node.js.

  4. Я разработал с JS и Coffee, и я могу сказать вам одну вещь: с чашкой последнего вам будет гораздо легче начать работу над вашими проектами. Программирование на основе отступов тесно связано с системой Jade Templating, которая также чувствительна к отступам. При одинаковом подходе к серверному коду и коду представления (и CSS, даже с отступами для вашего удобства) значительно упрощается разработка обоих. Я еще не нашел проблему от JS, которая не может быть решена с помощью гораздо более красивого выражения CoffeeScript.

  5. Следуйте проекту узла на github, следуйте проекту Express/Connect/cradle/Jade/mongoose/..- на github, найдите в Google "Учебник по выражению узла блога" и попробуйте присоединиться к сообществу IRC на irc.freenode.net. Интересные каналы: #node.js и, возможно, ##javascript. Оттуда люди покажут вам более специализированные комнаты. Я настоятельно рекомендую вам пойти туда, это очень полезная связка.

    У издателя O'Reilly есть несколько очень хороших книг, но они устарели в тот момент, когда их отправляют в книжный магазин. Поскольку сообщество ежедневно разрабатывает новые функции и версии, вам следует постараться максимально приблизиться к разработчикам основной функциональности. На IRC вы даже можете задать их с вашими (возможно, слегка интересными) проблемами - тем не менее, вы получите ответы и подсказки.

    Короче говоря: оставайтесь на связи с сообществом.

  1. Connect - это мощный и гибкий мини-фреймворк. Думаю, с правильным набором модулей это лучшее решение.
  2. node-mongodb-native для MongoDB, db-mysql для MySQL, только для шаблонов. Используйте панель инструментов узла, чтобы найти больше.
  3. Я использую MongoDB и MySQL. Это зависит от проекта.
  4. Я использую простой JavaScript, но это дело вкуса. Люблю родную.
  5. Исходный код. Realy. Экосистема Node.JS развивается очень быстро. Большая часть документации устарела на момент ее написания. Используйте GitHub, чтобы следить за проектами. Это действительно полезно.
  1. Используйте библиотеки, а не фреймворк, за исключением, может быть, expressjs. Большинство фреймворков, как правило, делают проблему более сложной, чем она есть. Используйте библиотеки, которые находятся на хороших условиях лицензирования. Если они больше не поддерживаются, вы можете, по крайней мере, взять на себя управление проектом.
  2. ExpressJS, Jade, Stylus, SocketIO, подчеркивание, JSDOM
  3. Монго, безусловно, самый популярный в наши дни. Я думаю, что причина в том, что его консольный интерфейс использует JavaScript. Это создает больше "языковой синергии" с разработчиком.
  4. У CoffeeScript есть свои особенности, но все же он намного лучше, чем простой JavaScript. Обратите внимание, это мнение.
  5. Не могу помочь тебе там; Я прошел через процесс обучения, просто читая онлайн-материалы.
  1. Это зависит от вашей базы знаний. Я начал с использования нескольких фреймворков и вернулся к пониманию основных понятий, но я бы рекомендовал сначала начать с малого.
  2. Существует более чем достаточно руководств по Express, и это отличный способ работы с узлами, но для этого требуется механизм шаблонов, такой как Jade или EJS .. (я предпочитаю, чтобы ejs отображал базовые файлы.html). Кроме того, узел имеет массу базовых модулей, например: require('http'); это хорошая отправная точка для понимания потока запросов.
  3. Mongo и Redis являются одними из самых щедрых IMO БД и имеют массу абстракций. хотя вы могли бы пойти с чем-то более коммерческим, как Parse.com
  4. Если вы уже знаете JS.. придерживайтесь его. в противном случае используйте CS как способ быстро написать Javascript, а не заменить его основы. В Интернете также есть больше примеров JS для начинающих, но гораздо более надежных реализаций кофейных сценариев на Git
  5. Не совсем уверен и в этом. Посмотрите на книгу Брэда Дейли "NodeJS, MongoDB и AngularJS" и разработку стека Google MEAN
Другие вопросы по тегам