Node.js:从mongoose查询中返回正确的JSON

时间:2016-04-06 14:52:38

标签: javascript json node.js mongodb mongoose

我有这个快速应用程序,mongoDB作为数据库,把手作为我的服务器端模板引擎。我在我的应用程序中没有使用AngularJS或Ajax。

在其中一个路由中,我必须渲染页面以及从数据库发送json文件。但是,我无法做到这一点。

以下是我的路线的代码段:

router.get('/disks', function(req, res, next) {
  places.find({"category": "disks"}, function(err, disks){
      if(err){
        throw err;
      }

       res.render('disks', 
        { 
          'risime': JSON.stringify(disks)
        });
      console.log(disks); // PROPERLY LOGS TO THE CONSOLE
  });
});

在hbs中,我试图抓住它,但我甚至不认为它是JSON。

以下是在客户端记录的方式:

[{"_id":"5704630a7d4cd367f8dsdce7","name":"Seagate",:"This awesome Hard disk",","categories":["SDD","256GB"]}]

问题是什么?如何解决?

2 个答案:

答案 0 :(得分:1)

" html逃脱"它的把手" html逃脱"你的字符串(这是你通常想要的)。

如果您不想要,可以使用" triple-stash"符号,像这样:

{{{risime}}}

您可以在此处阅读:http://handlebarsjs.com/#html-escaping

答案 1 :(得分:0)

我认为你需要在渲染之前添加它:

res.type('application/json');

客户端将知道这是一个JSON,而不是HTML或纯文本,它将正确显示。

我希望我的回答会对你有帮助。