Для инфраструктуры 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 для небольшого шаблонизатора.Обратите внимание, их терминология отличается от моей в примерах и коде.То, что я называю представлением , они называют шаблоном , а то, что я называю моделью , они называют представлением .Это мелочь, но может сбить с толку.
Дополнительные ресурсы: