js令牌替换(相当于在ASP.NET中调用内联函数)

Node.JS Token Replacement (equivalent of calling inline function in ASP.NET)

本文关键字:调用 函数 NET ASP 替换 令牌 相当于 js      更新时间:2023-09-26

现在,我有一个ASP。. NET应用程序,在aspx文件中,在不同的位置,我调用一个函数来插入标准模板HTML。例如:

<html>
<head>
</head>
<body>
<%=SectionHeader('Section title 1') %>
some content for section 1
<%=SectionHeader('Section title 2') %>
some content for section 2
</body>
</html>

因此,无论在哪里调用SectionHeader函数,它都会读取传入的参数,并插入部分标题的HTML,例如{title}。我正试图找出如何在Node中完成同样的事情。

我知道如何做一个基本的令牌替换-读取一个静态HTML文件,寻找一个令牌(如{token1}),并替换它的东西。但是,如果不使用正则表达式和复杂的字符串操作,有什么方法可以在Node中完成与ASP.NET相同的事情吗?

我使用了生成的应用程序框架,并修改了index.jsindex.jade以将函数传递到模板中。我认为这是你所要求的,但是如果这是一个好的架构,让模板调用回到逻辑中,可能会有意见。

index.js

exports.index = function(req, res){
  var fn = function(initial) {
      return initial + ". Tester";
  };
  res.render('index', { title: 'Express', fn : fn });
};

index.jade

block content
  h1= title
  p Welcome to #{title}
  div Hello #{fn('A')}

现在,当我加载http://localhost:3000/时,这就是在屏幕上呈现的内容。注意,"A"被传递到函数中,以生成输出的字符串"A. Tester"。


Welcome to Express

Hello A. Tester

有很多节点模板引擎,也许您应该尝试其中一个。如果你正在寻找一个web应用框架,express将是一个很好的起点,它支持许多模板引擎。

当然你可以只做字符串替换,但是模板引擎提供了更多。