使用node.js提供dynamic.js文件

我正在寻找某种“模板/macros引擎”的JavaScript文件。 我需要做的是提供JavaScript文件到浏览器。 这些JavaScript文件大多是静态的,但在某些方面有所不同。

这是我现在基本上在做的事情:

app.get('/api/api.js', function (req, res) { fs.readFile( path.join(__dirname, './libraries/api.js'), { encoding: 'utf8' }, function (err, data) { if (err) throw err; res.set('Content-Type', 'text/javascript'); res.send(data); }); }); 

现在,我需要添加/replace读取文件中的几行代码,然后将其提供给客户端。

更新:

这里有些例子:

 var host = 'http://mydomain.com/'; var domains = ['mydomain1.com', 'mydomain2.org']; 

是的,我可以使用基本的search和replace,但我想知道是否有一个更通用的解决scheme。

       

网上收集的解决方案 "使用node.js提供dynamic.js文件"

我解决它写我自己的小渲染引擎,你可以看到这里: http : //jsfiddle.net/g5PEp/

 var ApiRenderer = function(fileContent) { var fileContent = fileContent || ''; var data = {}; function sourroundString(str, char) { char = char || '\''; return char + str + char; } function render() { var result = fileContent, str; for(var key in data) { var substr = '/*{{' + key + '}}*/'; if(typeof data[key] === 'string') { str = sourroundString(data[key]); } if(Object.prototype.toString.call( data[key] ) === '[object Array]') { str = '['; for(var i = 0; i < data[key].length; i++) { str += sourroundString(data[key][i]); if(i !== data[key].length - 1) { str += ','; } } str += ']'; } result = result.replace(substr, str); } return result; } return { setData: function(key, value) { return data[key] = value; }, render: function() { return render(); } } }; 

这是目前为我工作,但我有点伤心,这不允许我在我的模板中写有效的JavaScript代码。