【问题标题】:JSON Parsing NodeJS and MongoDBJSON解析NodeJS和MongoDB
【发布时间】:2017-02-06 00:00:03
【问题描述】:

我有以下从服务中获取的代码:

  [{
    "_id": "58954f3bf36d2814d65a9aba",
    "School": {
        "id": 1,
        "name": "X"
    }
}, {
    "_id": "58954f68f36d2814d65a9abb",
    "School": {
        "id": 2,
        "name": "Y"
    }
}, {
    "_id": "58954fa7f36d2814d65a9abc",
    "School": {
        "id": 3,
        "name": "Z"
    }
}]

我想将一个学校数组发回给用户,我该怎么做节点?目前我有一个访问数据库并返回所有行的路由器。但我更愿意发送正确的类型。我的节点代码如下

var express = require('express');
var router = express.Router();
var  mongojs  =  require('mongojs');
var db = someData;

//Get all users
router.get('/x', function(req, res, next) {
    // find everything
    console.log('x service called') 
    db.s.find(function (err,  ss)  {    
        if (err) {
            res.send(err);
        }
        console.log(ss)
        res.json(ss);
    });
});

// private extractData(res: Response) {
//     if (res.status < 200 || res.status >= 300) {
//         throw new Error('Bad response status: ' + res.status);
//     }
//     let body = res.json();
//     return body.data || {};
// }

module.exports = router;

谢谢

【问题讨论】:

  • 您只想发送一系列学校?没有_id?从提到的数组?
  • 请提供输出对象示例
  • 我只需要 [{ "School": { "id": 1, "name": "X" } }, { "School": { "id": 2, "name" : "Y" } }, { "School": { "id": 3, "name": "Z" } }]

标签: json node.js mongodb


【解决方案1】:

您应该需要对 ss 对象进行字符串化

var express = require('express'); 
var router = express.Router(); 
var  mongojs  =  require('mongojs');   
 var db = someData; 
 router.get('/x', function(req, res, next)
 {  console.log('x service called') 
 db.s.find(function (err,  ss)  
{     if (err) { 
                res.send(err);
                   } 

      else{
                  console.log(ss) 
                 ss=JSON.stringify(ss);
                  res.send(ss);
             }
           }); });
          module.exports = router;

在客户端你需要

var ss=JSON.parse(ss);

这样你就可以从服务器中提取数据

【讨论】:

  • 如果您使用的是 res.json 的 express,则不需要进行字符串化。它在内部对 cintent tyoe 标头进行字符串化和设置
  • 我应该使用 json.parse(string, reviver) 吗?
猜你喜欢
  • 2016-11-04
  • 2015-06-28
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 2014-03-14
  • 2015-03-16
  • 2018-09-18
  • 2012-01-16
相关资源
最近更新 更多