在Node.js中创建参数化“组件”的最佳方法是什么?

时间:2012-11-22 23:04:11

标签: node.js express

最初的问题

我的问题很容易被误解,所以我会用一个例子,或者更好,我会做一个比较。

考虑ASP.NET Web应用程序。在那里可以定义ascx个组件。这些组件非常好用,因为它们定义了一些可重用的代码,其中包含一些更加智能的功能,这些功能使它们不仅仅是普通代码的一部分......而是用于Web应用程序的参数化部分。

我的问题是,当然考虑到Node.js不是ASP.NET:Node.js中用于定义可重用组件(参数化)的最相似的解决方案是什么?

三江源

对于那些不熟悉ASP.NET的人

我知道不是每个人都熟悉ASP.NET。所以我将在这里详细说明我需要的东西。将参数传递给html或jade segmente代码是我可以在Node.js中做的事情,但我想做的是将我的jade / html代码写入文件(它包含一些div和其他东西),然后引用它在另一个jade / html文档中或在其中传递的一个参数。

新修订的问题

当我被告知使用mixins来解决这个问题时,我开始寻找它们并尝试了一些,没关系,我设法完成了最简单的混合,但是当我不得不让事情变得复杂一点时,mixins开始表现得很奇怪。所以现在我想知道它们是否是我一直在寻找的解决方案。所以现在我将详细解释我想要实现的目标(因为我太通用了)。

我有一个使用Jade编写的网页,我需要创建一个可以在整个页面中重复使用的组件。这个组件只是一个包含文章的结构化div。如果我用伪代码编写这个组件,这就是Jade ish语法中可能会出现的样子:

component article(@title, @subtitle, @articlebody, @writtenon)
.article
  .head {@title}
  .head {@subtitle}
  div(style='float:left;clear:both')
    .body
      {@articlecontent}
    .foot
      {@writtenon}

所以,正如你所看到的,我希望这一堆代码能够被参数化,所以我可以在我的页面中重复使用它:

doctype 5
html
  head
    title = title
  body
    .article('my first art', 'dummy subtitle', 'bla bla bla... lorem ipsum', '12/12/2012')
    .article('my second art', 'dummy subtitle', 'bla bla bla... lorem ipsum', '12/12/2012')

依旧......

还要考虑参数可能是长值。在我的示例中,其中一个参数是文章的正文。我需要插入正文的html代码

我在网上搜索了解如何执行此操作,但找不到任何教程或有效示例。

你能帮帮我吗?三江源

1 个答案:

答案 0 :(得分:3)

我不熟悉ascx文件,所以我不知道这是否是你想到的,但是为node.js编写了不同的模板引擎,允许重用前端模板(类似html的文件)。例如,在Jade引擎中mixins允许您将参数传递给模板。