Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
widgets模板系统使用node.js和dust服务器端模板_Node.js_Widget_Express_Template Engine_Dust.js - Fatal编程技术网

widgets模板系统使用node.js和dust服务器端模板

widgets模板系统使用node.js和dust服务器端模板,node.js,widget,express,template-engine,dust.js,Node.js,Widget,Express,Template Engine,Dust.js,我正在尝试使用Node.js和Dust作为模板引擎创建一个包含小部件的页面。 我希望小部件尽可能独立,有自己的css、js和html 以下三种方法中哪一种最好?哪一个最快 选项a:仅使用res.render和rendering一次 pseudo code: 1) call page route (app.get('/', routes.somePage); 2) load config file (say /views/somePage.cfg) listing all widget

我正在尝试使用Node.js和Dust作为模板引擎创建一个包含小部件的页面。 我希望小部件尽可能独立,有自己的css、js和html

以下三种方法中哪一种最好?哪一个最快

选项a:仅使用res.render和rendering一次

pseudo code:
   1) call page route (app.get('/', routes.somePage);
   2) load config file (say /views/somePage.cfg) listing all widgets on somePage.
   3) get widget data if needed (say access another server for the data).
   4) build 1 context object and pass to render
   5) call res.render with context containing page data + all widget's data
   5) somePage template will include partials to build page, including widget partials. 
pseudo code:
  1) call page route (app.get('/', routes.somePage); 
  2) load config file (say /views/somePage.cfg) listing all widgets on somePage.
  3) use app.render() to render widgets + page (running js to get each widget data) 
  4) use res.write() to build a complete page.
选项b:使用res.write

pseudo code:
   1) call page route (app.get('/', routes.somePage);
   2) load config file (say /views/somePage.cfg) listing all widgets on somePage.
   3) get widget data if needed (say access another server for the data).
   4) build 1 context object and pass to render
   5) call res.render with context containing page data + all widget's data
   5) somePage template will include partials to build page, including widget partials. 
pseudo code:
  1) call page route (app.get('/', routes.somePage); 
  2) load config file (say /views/somePage.cfg) listing all widgets on somePage.
  3) use app.render() to render widgets + page (running js to get each widget data) 
  4) use res.write() to build a complete page.
选项c:使用帮助程序

pseudo code:
  1) call page route (app.get('/', routes.somePage);
  2) use app.render()
  3) use custom helper to render different widgets. 
     custom helper will actually grab the data and might use app.render inside to build 
     the widget during render time..

我经历了一些事情,在讨论了Node.js IRC之后,我结束了对选项a的讨论。似乎这是正确的路径,构建一个主上下文并将其提供给一个模板

我最终构建了一个全局上下文对象,并将某些小部件添加到它的json中。 它就像一个符咒