Подтвердить что ты не робот

Смутно со всеми фреймворками/библиотеками Node JS и т.д. Вокруг

Я чувствую себя немного смущенным, там так много фреймворков для Node.js, связанных "stuff". Кто-нибудь сможет дать мне обзор - как следующие библиотеки/рамки/независимо друг от друга связаны/взаимодействуют друг с другом - что включено или какая основная цель для каждого из них? - различия между ними

Кроме того, если есть другие, которые я оставил в своем списке, не стесняйтесь добавлять их и описание того, что они собой представляют и как они вписываются.

  • Node
  • CoffeeScript
  • Магистральные
  • Экспресс
4b9b3361

Ответ 1

Большинство вещей, которые вы указали, связаны только потому, что они написаны или иным образом используют JavaScript. Сравнение их очень похоже на сравнение яблок с апельсинами. Ему нравится спрашивать, какая разница между Toyota Camry и двигателем V6. Они связаны друг с другом, но делают разные вещи.

Node

Также известен как Node.js, Node - это среда JavaScript, на которой мы запускаем наш код на стороне сервера. Он основан на движке JavaScript V8. Весь код JavaScript, который вы пишете, или устанавливаете и запускаете из пакетов из NPM, GitHub и т.д., Выполняется средой выполнения Node.

CoffeeScript

CoffeeScript - простой и простой язык программирования, который скомпилируется с использованием JavaScript. Его цель состоит в том, чтобы проще разоблачить всю мощь JavaScript. Важно помнить, что весь код CoffeeScript просто компилируется на JavaScript при его запуске; различия являются чисто синтаксическими. На его веб-сайте имеется гораздо больше информации.

Магистральные

Backbone можно сравнить с Model-View- Контроллер для JavaScript. Я считаю, что он был первоначально написан для браузера; это помогает поддерживать чистоту вашего клиентского JavaScript, реализуя наиболее распространенные шаблоны MVC (а также пару других вещей), позволяя более легко подключаться ваш клиентский JavaScript для вашего серверного кода.

Экспресс

Express - это веб-фреймворк для Node.js, построенный на Connect. Во многом это похоже на Sinatra для Ruby. Это позволяет вам легко создавать веб-сайты с маршрутизацией, макетами/частичными/представлениями, сеансами и т.д. Существует множество сторонних модулей для Express, что позволяет легко получить именно тот стек, который вам нужен.


Существует масса модулей для Node; на данный момент NPM имеет более 3000 опубликованных пакетов, и для охвата даже самых популярных из них потребуется некоторое количество времени! Обязательно укажите NPM или страницу списка модулей в любое время, когда вам нужно решить новую проблему, чтобы избежать изобретательства колеса (если вы не хотите много узнайте о колесах.:)

Ответ 2

С node.js вам нужно только выбрать один фреймворк. Для фреймворков некоторые популярные -

  • connect Компонент промежуточного программного обеспечения для управления HTTP-запросами
  • express Механизм просмотра и построение маршрутизатора на подключении.
  • SocketStream Быстрая веб-среда реального времени для node.js
  • zappa Не ваша мама node framework
  • grasshopper структура MVC
  • geddy веб-инфраструктура
  • spludo Еще одна инфраструктура MVC

Я использовал только express, и я могу поручиться, что это фантастика. У него отличная община и фантастическая поддержка. Это также единственная библиотека, которую я знаю, просто работает и много говорит.

Кроме того, сообщество node использует оптимизированные модули, которые решают одну проблему, когда им нужна эта проблема. Frameworks должен обрабатывать минимальные проблемы обработки HTTP-запроса и express решает это.

Ниже приведено исключение из файла package.json.

"dependencies": {
    // my framework, used to handle HTTP
    "express": "2.4.4",
    // a very specific validation module used for input validation
    "validator": "0.2.7",
    // dust a templating engine
    "dust": "0.3.0",
    // a uuid factory
    "node-uuid": "1.2.0",
    // a markdown parser
    "marked": "0.0.4",
    // a HTTP request library
    "request": "2.0.3",
    // a traits (OOP) library
    "traits": "0.4.0",
    // a file tree watcher
    "watch": "0.3.2",
    // a CSS abstraction
    "less": "1.1.4",
    // a flow control library
    "after": "0.1.0",
    // a utility to extend Buffer
    "buffertools": "1.0.3"
},
"devDependencies": {
    // a unit testing library
    "vows-fluent": "0.1.0",
    // a unit testing utility
    "should": "0.2.1",
    // hot code reloading
    "nodemon": "0.5.3",
    // debugger
    "node-inspector": "0.1.9"
}

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

Например, я рекомендовал backbone как сплошную библиотеку MVC, но он просто не работает с node. Поэтому я выложил свою собственную абстракцию MVC. Я также рекомендовал cradle как сплошную абстракцию CouchDB, но он просочился, поэтому я ушел и написал свой собственный код доступа к базе данных, используя request, чтобы поговорить с CouchDB.