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

Node.js: Returning proper JSON from mongoose query

本文关键字:JSON 返回 查询 js mongoose Node      更新时间:2024-02-09

我有一个以mongoDB为数据库、以handlers为服务器端模板引擎的express应用程序。我的应用程序中没有使用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"]}]

问题是什么?我该如何解决?

它是"html转义"字符串的句柄(这是您通常想要的)。

如果你不想这样,你可以使用"三重隐藏"表示法,比如:

{{{risime}}}

你可以在这里阅读:http://handlebarsjs.com/#html-退出

我认为您需要在渲染之前添加以下内容:

res.type('application/json');

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

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