【问题标题】:Nodejs - Mysql - Nested JSON ResponseNodejs - Mysql - 嵌套 JSON 响应
【发布时间】:2020-05-19 21:33:18
【问题描述】:

我开发了一个 NodeJS Express API。我有一个查询,查询的响应必须以嵌套响应的形式发送,格式如下:

[
 {
  Status: Success,
  data:{
        "Key 1" : "Value1"
       },
       {
        "Key 2" : "Value2"
       }

  }
]

键和值是从返回响应的mysql查询中获得的。

app.post('/getstatus', function(req, res){
    r1= req.body.imei;


    mysqlQuery = `SELECT value from table1 where key = true `;

    mysqlPool.query(mysqlQuery, function(error, response, fields){
        if(error){
            result = [{Status:"Error", Error: "Error Connecting to Database. Contact Administrator.", ErrorDetails:error.message }];

        }else{

            result=[{status:"Success", data:JSON.stringify(response)}];
        }
        res.json(result);
    });
});

我已经尝试了上面的代码,但它没有给我正确的响应。 JSON.stringify(response) 不会将数据转换为 JSON 格式。

【问题讨论】:

    标签: mysql node.js json


    【解决方案1】:
    else{
    
                result=[{status:"Success", data:response}];
            }
            res.json(JSON.stringify(result));
    

    【讨论】:

    • 你为什么使用'stringify'? res.json(结果);我认为会起作用的。
    • 嘿,好点子! re.json 上的文档expressjs.com/en/api.html#res.json 我什至没有看 OP 的响应方法,只是他们在错误的地方使用了 stringify!
    【解决方案2】:

    不要在服务器端对响应进行字符串化。 您应该像 JSON 一样发送它并在用户上对其进行字符串化。

    【讨论】:

    • 我认为您将 stringify 误认为是解析。 Stringify 生成一个广泛兼容的字符串,并将其解析为 JavaScript 对象。我不确定服务器是否可以通过 http 发送 JavaScript 对象。
    猜你喜欢
    • 2020-02-14
    • 2018-07-29
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多