将变量从Express传递到客户端JavaScript
最后,我尝试从节点服务器传递JSON数据,供客户机中的D3使用 这是我的index.js将变量从Express传递到客户端JavaScript,javascript,node.js,express,d3.js,ejs,Javascript,Node.js,Express,D3.js,Ejs,最后,我尝试从节点服务器传递JSON数据,供客户机中的D3使用 这是我的index.js var express = require('express'); var router = express.Router(); var portmix = require('../data/holdings.json'); /* GET individual portfolio page. */ router.get('/portfolio/:portcode', function(req, res)
var express = require('express');
var router = express.Router();
var portmix = require('../data/holdings.json');
/* GET individual portfolio page. */
router.get('/portfolio/:portcode', function(req, res) {
var porthold = [];
for(var i in portmix){
if(portmix[i].PortfolioBaseCode === req.params.portcode){
porthold.push(portmix[i])
}}
res.render('index', {
pagetype: 'single_portfolio',
holdings: porthold[0]
});
});
module.exports = router;
以下是ejs文件:
<div class="portfolio">
<h2><%= holdings.ReportHeading1 %></h2>
<ul>
<li>Cash: <%= holdings.CashMV %></li>
<li>Fixed Income: <%= holdings.FixedMV %></li>
<li>Equity: <%= holdings.EquityMV %></li>
<li>Alternatives: <%= holdings.AltMV %></li>
</ul>
<div class="chart">
</div>
</div>
结果是
Holdings: undefined
有办法做到这一点吗?还是我完全搞错了?您不能从客户端调用EJS变量,您必须将JSON输出到页面,然后获取它
<script type="text/javascript">
var json_data = <%- JSON.stringify( holdings ); %>
// use the above variable in D3
</script>
<div class="portfolio">
<h2><%= holdings.ReportHeading1 %></h2>
<ul>
<li>Cash: <%= holdings.CashMV %></li>
<li>Fixed Income: <%= holdings.FixedMV %></li>
<li>Equity: <%= holdings.EquityMV %></li>
<li>Alternatives: <%= holdings.AltMV %></li>
</ul>
<div class="chart">
</div>
</div>
变量json_数据=
//在D3中使用上述变量
- 现金:
- 固定收益:
- 权益:
- 备选方案:
这可能的副本已关闭。为了让它工作,我不得不把它改成
@jtmcn-哦,对了,否则它会逃过引号
<script type="text/javascript">
var json_data = <%- JSON.stringify( holdings ); %>
// use the above variable in D3
</script>
<div class="portfolio">
<h2><%= holdings.ReportHeading1 %></h2>
<ul>
<li>Cash: <%= holdings.CashMV %></li>
<li>Fixed Income: <%= holdings.FixedMV %></li>
<li>Equity: <%= holdings.EquityMV %></li>
<li>Alternatives: <%= holdings.AltMV %></li>
</ul>
<div class="chart">
</div>
</div>