Советы по созданию микро-фреймворка в JavaScript - PullRequest
7 голосов
/ 15 сентября 2010

Я хотел бы знать, какие шаги необходимы для создания фреймворка поверх node.js. Я считаю, что это может быть хорошим способом обучения, поэтому я делаю это!

Я проверял другие микро-фреймворки и более крупные фреймворки, но не смог понять, с чего начать. Я хотел бы получить ваш совет по этому вопросу. Спасибо.

Редактировать: MVC Framework, такой как Sinatra, Merb, Rails.

1 Ответ

5 голосов
/ 16 сентября 2010

Для инфраструктуры MVC основные концепции выглядят примерно так (простите за простоту):

var view = 'I say, "{{first}} {{second}}".';
var model = {
    first: 'hello',
    second: function(){
        return 'world';
    }   
};

for(item in model){     
    var regex = new RegExp('{{' + item + '}}', 'gi');
    if(typeof(item) == 'function')
        view = view.replace(regex, model[item]());
    else
        view = view.replace(regex, model[item]);
}
console.log(view);

Начните как можно проще и добавьте небольшие улучшения:

  • Storeпредставления / шаблоны в виде файлов.Это дает вам возможность поиграть с асинхронным вводом-выводом в файле node.js.
  • Добавить поддержку для более сложных моделей - повторяющиеся элементы / массивы, объекты, содержащие объекты
  • Добавить поддержку шаблонов внутри шаблонов
  • Получите ваши модели из внешнего источника данных. CouchDB может быть забавно.
  • Добавить правильные контроллеры - эти объекты должны знать, с какими моделями идут и с какими представлениями и как их объединять
  • Сопоставьте URL-адреса вашего запроса Http с контроллерамии действия - / person / 55 может извлечь человека с идентификатором 55 из вашего хранилища данных, / person / add может вызвать пользовательский интерфейс для добавления человека - оба используют контроллер person с представлениями, отображаемыми для соответствующего действия.

Взгляните на mustache.js для небольшого шаблонизатора.Обратите внимание, их терминология отличается от моей в примерах и коде.То, что я называю представлением , они называют шаблоном , а то, что я называю моделью , они называют представлением .Это мелочь, но может сбить с толку.

Дополнительные ресурсы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...