如何修复车把中的前端 javascript 从服务器捕获未定义的值?
How to fix frontend javascript in handlebars catching undefined value from server?
我在后端有一个 JSON 对象,我想将其发送到前端 javascript。但是我在尝试访问该变量时经常遇到 "undefined" 。
candidates 是 json 对象并且在服务器端工作正常。
这是我的服务器端代码。
res.render('electionview',{title: 'Election', poll: poll, data: JSON.stringify(candidates) });
这是我在 Handlebars 中的脚本
<script type="text/javascript">
var candidates = {{{data}}};
console.log(candidates);
<script>
但我在控制台中收到此错误。
Uncaught SyntaxError: Unexpected token ';'
当我删除分号时,控制台中的输出是 undefined。我错过了什么?
服务器端:
let obj = {};
obj.title = 'Election';
obj.poll = poll;
obj.data = candidates;
res.render('electionview', obj);
我假设渲染函数已经知道如何将对象作为 JSON,所以不需要 JSON.stringify
任何东西。
然后,在客户端,JSON.parse()
上面的对象整体。在那之后,它应该有一个 data
属性 可以根据需要使用。
我得到的候选人是:
Candidate.find({}).lean()
.then(candidates=>res.render("electionview", JSON.stringify(candidates))
删除 .lean() 修复了它。
我在后端有一个 JSON 对象,我想将其发送到前端 javascript。但是我在尝试访问该变量时经常遇到 "undefined" 。
candidates 是 json 对象并且在服务器端工作正常。
这是我的服务器端代码。
res.render('electionview',{title: 'Election', poll: poll, data: JSON.stringify(candidates) });
这是我在 Handlebars 中的脚本
<script type="text/javascript">
var candidates = {{{data}}};
console.log(candidates);
<script>
但我在控制台中收到此错误。
Uncaught SyntaxError: Unexpected token ';'
当我删除分号时,控制台中的输出是 undefined。我错过了什么?
服务器端:
let obj = {};
obj.title = 'Election';
obj.poll = poll;
obj.data = candidates;
res.render('electionview', obj);
我假设渲染函数已经知道如何将对象作为 JSON,所以不需要 JSON.stringify
任何东西。
然后,在客户端,JSON.parse()
上面的对象整体。在那之后,它应该有一个 data
属性 可以根据需要使用。
我得到的候选人是:
Candidate.find({}).lean()
.then(candidates=>res.render("electionview", JSON.stringify(candidates))
删除 .lean() 修复了它。