Смутно со всеми фреймворками/библиотеками Node JS и т.д. Вокруг
Я чувствую себя немного смущенным, там так много фреймворков для Node.js, связанных "stuff". Кто-нибудь сможет дать мне обзор
- как следующие библиотеки/рамки/независимо друг от друга связаны/взаимодействуют друг с другом
- что включено или какая основная цель для каждого из них?
- различия между ними
Кроме того, если есть другие, которые я оставил в своем списке, не стесняйтесь добавлять их и описание того, что они собой представляют и как они вписываются.
- Node
- CoffeeScript
- Магистральные
- Экспресс
Ответы
Ответ 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.