如何使用Node.js + HBS + Express将JSON传递给客户端?

考虑一下,我在Express的呈现页面(使用hbs作为视图引擎)中发送JSON给客户端:

res.render('MyPage.html', { layout: false, PageTitle: 'Project Name', JSON_Data: {field1:'value',field2:'value2'}}); 

我可以使用{{PageTitle}}来访问和设置HTML页面的标题,下面是代码。

  <title>{{PageTitle}}</title> 

现在我想显示JSON_data到警报popup。

我试过以下方式,但获取Uncaught SyntaxError: Unexpected token { ,而在Chrome中debugging是显示var jsonobj = [object Object]

  function fbOnBodyLoad() { var jsonobj = {{JSON_data}}; alert(jsonobj); } 

任何机构可以提供一些关于如何访问JSON_data并显示警报的想法

提前谢谢

你总是可以注册一个Handlebars帮助器来将对象格式化为string格式(比如使用JSON.stringify),然后在你的视图中使用这个帮助器。 http://handlebarsjs.com/block_helpers.html

要访问json对象的内部元素,请尝试像这样

 var jsonobj = "{{JSON_data.field1}}"; 

可能是这个可能解决的问题。

参考

Handlebars.jsparsing对象而不是[Object object]

对我来说,它在服务器上的工作:

 res.render('pages/register', { title: 'Register Form', messages: req.flash('error'), countries:JSON.stringify(countries) }); 

然后我使用这个国家variables在angular度控制器中分配这样的:

 angular.module('languagesApp', []).controller('DemoController', function($scope) { $scope.algo = {{-countries}}; ...