2011-03-01 155 views
8

我正在使用node.js.我想用一些占位符字符串读取文件,并在提供文件之前动态替换它们。这不是一个HTML文件,所以模板引擎将无法工作。将字符串替换为node.js中的文本文件

我该怎么做?

+0

我已经尝试加载文件作为字符串,并做正则表达式替换。想知道是否有更优雅的方式。 – 2011-03-01 05:17:41

+1

你尝过胡须吗? http://mustache.github.com/ – generalhenry 2011-03-01 07:07:10

回答

23

如果模板引擎过度使用,只需使用string.replace()

temp = "Hello %NAME%, would you like some %DRINK%?"; 

temp = temp.replace("%NAME%","Michael Dillon"); 
temp = temp.replace("%DRINK%","tea"); 
console.log(temp); 

由于只有一个多一点的工作,你可以使基于刚刚在String对象的标准方法的通用模板功能。

2

模板引擎不仅适用于html。如果使用的是快递,例如,你可以设置自己的头和指定的内容类型:

查看:

var foo = "{{ bar }}"; 

渲染:

app.get('/file.js', function(req, res, next) { 
    res.render('templateName', { 
    locals: {bar: 'quux'}, 
    headers: {'content-type': 'text/javascript'} 
    }); 
}) 

将产生:

var foo = "quux"; 

如果您不使用Express,您可以渲染模板并发送带有任何内容的响应 - 你喜欢的类型。