在我的应用程序中,我需要提供一个 API(类似于 Google Maps javascript API),通过它我可以发送一些自定义 javascript(带有一些 session 和请求相关信息)作为响应。然后使用 javascript 在 UI 上绘制一些图形。我使用 Express with Jade 作为我的模板引擎。我目前使用的代码是:
app.use('/graph',function(req, res){
//send out graph data
var var_name = req.session.var_name //fetch something from session
var graphData = fetchGraphData(req.query.graph); //function that fetches graph data
res.contentType("text/javascript");
res.render(__dirname + '/views/graph.jade', {
title: "Title", queryStr: JSON.stringify({var_name: var_name, graphData: graphData })
});
});
还有 Jade :
| some_var_name = {
| initGraph : function(divId){
| //some code here
| var graphData = !{graphData}
| // do something
作为一种解决方法,我在 jade 文件的每一行开始时都使用 |
,这样 jade 就会将文本解析为纯文本,并且不会添加任何 html 标签!它工作正常,但有没有更清洁的方法来做到这一点?该解决方案可能使用也可能不使用 Jade!
最佳答案
你应该看看underscore templates .我认为生成任意文本输出会更简洁一些。 Jade 专为呈现 HTML 而构建。
你也可以试试 Mustache或 Handlebars .
根据您的评论,我发现您希望继续使用 res.render
来呈现模板。 consolodate.js向 Express 添加对所有主要模板引擎的支持。包括 @TheHippo 提到的 Underscore 模板、Handlebars、Mustache 和 Dust。
关于javascript - express /Node.js : Render custom javascript as response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408553/