如何在公共JS文件中使用通过Express res.render发送的JSON
How to use JSON sent via Express res.render in a public JS file
提前感谢您的帮助。 我有一个问题一直困扰着我,我相信它非常简单。
在app.get
请求中,我从 express 调用外部 api,然后使用 res.render
发送 jade 文件和 json。
我可以成功地在 jade 文件中操作这些数据,而 JavaScript 直接写在 jade 文件中。
但是,我一生都无法弄清楚如何从输出的HTML引用的JavaScript文件中操作此JSON。
例如:
router.get('/dashboard', function (req, res, next) {
// Call the external api and get data.
// Parse the data
res.render('dashboard', {
data: data
});
});
然后,dashboard.jade 文件使用此数据来做很酷的事情。
if #{data.isNew} === true {do cool stuff}
我还编写了一些将这些数据直接使用到dashboard.jade文件本身的JavaScript。但是,我更愿意在一个名为scripts的文件中编写和使用这个JavaScript.js该文件是从Jade文件中引用的。
script(src='scripts.js')
我无法访问这些数据 - 我尝试了多种语法来尝试让它工作,但失败了。
我的问题是,我如何使用已从该渲染视图引用的 JS 文件中将 res.rendered(( 转换为视图的 JSON?
您需要在 dashboard.jade 中声明一个变量,然后使用内插将数据输出到字符串中:
script.
var myData = #{JSON.stringify(data)};
Jade 引擎会将其输出为有效字符串,然后该页面上加载的任何脚本都可以使用该字符串。
相关文章:
- 在express.js中为每个请求设置全局res.local变量
- 修改express.js中的res对象
- 如何将async.whilst调用的结果发送到和express.js res.send()
- 在Express.js中,是否有一个相当于res.locals的路由
- 在express应用程序中异步执行res.render
- Express 的 res.end() 是如何工作的
- 在jade javascript部分访问express res.render的输入数据
- Express.js res.render() and res.redirect()
- 为什么 Express 渲染的页面不是在 res.render 中指定的
- 测试Express.js res.render在承诺与Mocha&Sinon spy
- fs.readFile 的替代方法,用于在 Express 中使用 res.json 时加载车把模板
- 如何让 Express 在使用 res.render 时自动设置内容类型
- 下兔子洞 - “res”在express和/或nodejs中来自哪里
- Express 4 Multer / req.body 和 res.json 未定义
- 如何在公共JS文件中使用通过Express res.render发送的JSON
- Express.js 中 res.send 和 res.json 之间的区别
- Express app.param issue with res.send
- Express, AJAX - res.send 不发送任何数据
- Nodejs - Express res.download 给出 发送后无法设置标头异常
- 如何在Express'中使用变量;s res.redirect()