Я бы посоветовал начать с тех, которые npm install promise. Это основа основ. Если вы поймете, что вам в них чего-то не хватает, то скорее всего сами придете к библиотеке Q.
Очередь в событийной модели сама по себе не является антипаттерном.
Выставление приоритетов объектам в очереди - это очень спорная ситуация. Как минимум это уже не классическая событийная модель, а узкоспециализированная реализация, которая несет в себе существенный недостаток - вам придется постоянно следить за этими самыми приоритетами, дорабатывать логику их выставления.
Также подобный подход сделает очередь событий неоднородной, что само по себе звучит очень странно, т.е. вы как бы заявляете, что некоторые независимые (логически равные) части вашего приложения (а события, это в первую очередь способ коммуникации между независимыми модулями) по какой-то, неведомой для самих модулей, причине не равны. "Все звери равны, но некоторые равнее" (с) Оруэлл
Шаблон "Обозреватель", который вы упомянули в вопросе, характеризуется, в числе прочего, слабой связью с подчиненными, т.е. он почти ничего (а в идеале вообще ничего) не знает о структуре подчиненных. Событийная модель, как частный случай обозревателя - это как раз та идеальная ситуация.
Для вашей ситуации да. Если вы хотите использовать сами объекты в качестве ключа в коллекции, то вам стоит посмотреть в сторону новых Set и Map. В вашем же случае объект сначала преобразуется в строку при помощи toString, и уже как строка передается в ключ коллекции.
Есть вероятность, что вам нужно прописать директорию nodejs в PATH. Но каких-то более серьезных телодвижений делать не надо. Можете еще попробовать переустановить плагин.
Механизм есть. Я сейчас запрашиваю список файлов в директории, и потом сравниваю их с искомым в режиме lowerCase, как только получаю соответствие, возвращаю не lowerCase версию. Проект кроссплатформенный, если точнее, то это node-inspector. Механизм работает, но често говоря я надеялся, что есть способ получше, чем вычитывать всю директорию...
Тимур Шемсединов, думаю у нас разные понятия об объекте global. В силу специфики моих задач (проект node-inspector), я на своей шкуре прочувствовал, что require никогда не находится в реальном объекте global. Для сравнения возьмем объект console, вот он действительно глобален. Сейчас посмотрел исходники 0.12 - заявленной фичи там нет, а она сильно бы упростила жизнь node-inspector. На правах рекламы - вышел Node Inspector 0.8.0 с консолью и профилировщиками.
__filename локален для каждого модуля, моя цель получить реальное название именно основного файла проекта, т.е. модуля из которого проект был запущен. И к тому же результат ничем не будет отличаться от process.mainModule.filename
Тогда могу посоветовать связку nodejs + mongodb + mongose + expressjs + frontend. Если времени у вас много, и тяга к знаниям есть, то стоит смотреть в сторону уже готовых MVC решений Derby.js или Loopback. Эти рекомендации актуальны, если вы решитесь выбрать nodejs. Из комментариев ниже я заметил, что вам хочется обойтись без бэкенда, в этом случае, если MongoDB не принципиальна, а важен лишь опыт работы с noSql базой данных, можете посмотреть в сторону IndexedDB