javascript - express /Node.js : Render custom javascript as response

标签 javascript node.js express response pug

在我的应用程序中,我需要提供一个 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 而构建。

你也可以试试 MustacheHandlebars .

根据您的评论,我发现您希望继续使用 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/

相关文章:

javascript - 能够访问服务返回的对象,但访问其属性给出未定义

c# - Switch(Javascript 和 C#)和 Select...Case (VBScript) 的语言语法 - 组合大小写

javascript - 使用 javascript 确定用户是否登录到 Joomla

node.js - 将更新推送到运行 Node 应用程序的设备

node.js - 我应该如何使用 MEAN 堆栈进行后端设计?

javascript - 如何在 Angular 图中制作像钟形曲线一样的条形?

node.js - Mongoose 子文档数组推送

javascript - 找不到模块 `express` |套接字.io [node.js]

使用 Node.JS Express 和 AJAX 进行 JQuery 自动完成

node.js - sails js 框架中的 session 管理