Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用oracledb和带有ExpressJS的NodeJS从查询中形成和获取嵌套JSON对象_Node.js_Oracle_Express_Node Oracledb - Fatal编程技术网

Node.js 如何使用oracledb和带有ExpressJS的NodeJS从查询中形成和获取嵌套JSON对象

Node.js 如何使用oracledb和带有ExpressJS的NodeJS从查询中形成和获取嵌套JSON对象,node.js,oracle,express,node-oracledb,Node.js,Oracle,Express,Node Oracledb,我必须查询一组数据,我希望这些数据被嵌套以使itt更有意义。使用ExpressJS和oracledb framework查询数据时,如下所示: oracledb.getConnection(getConnectAttr, function(err,connection){ if(err){ res.set('content-type','application/json'); res.status(500).send(JSON.stringify({

我必须查询一组数据,我希望这些数据被嵌套以使itt更有意义。使用ExpressJS和oracledb framework查询数据时,如下所示:

oracledb.getConnection(getConnectAttr, function(err,connection){
    if(err){
      res.set('content-type','application/json');
      res.status(500).send(JSON.stringify({
        status:500,
        message:"Error connection to DB",
        detailed_message:err.message
      }));
      return;
    }
      connection.execute("select * from REGISTRATION_MASTER", {}, {outFormat : oracledb.OBJECT
      },function(err, result){
        if(err){
          res.set('content-type','application/json');
      res.status(500).send(JSON.stringify({
        status:500,
        message:"Error connection the REGISTRATION",
        detailed_message:err.message
      }));
        }
        else{
          res.contentType('application/json').status(200);
          res.send(result.rows);
        }

        //Release the connection
        connection.release(
          function(err){
            if(err){
              console.error(err.message);
            }
            else{
              console.log("GET/comments : connection released")
            }
          });
      });

  });
我曾经查询过,查询结果会是

[   
    {
        "REG_ID": 1,
        "REG_TEXT": "User Name",
        "REG_VALUE": null,
        "REG_IS_REQUIRED": "true",
        "REG_TYPE": "text"
    },
    {
        "REG_ID": 2,
        "REG_TEXT": "Password",
        "REG_VALUE": null,
        "REG_IS_REQUIRED": "true",
        "REG_TYPE": "password"
    },
    {
        "REG_ID": 3,
        "REG_TEXT": "First Name",
        "REG_VALUE": null,
        "REG_IS_REQUIRED": "true",
        "REG_TYPE": "text"
    }   
]
我实际上需要通过查询的方式形成一个json,这样输出应该是

{
  "REG_FIELDS": [{
    "REG_ID": 1, "REG_TEXT": "User Name", "REG_VALUE": "", "REG_IS_REQUIRED": "true",
    "REG_TYPE": "text"
  }, {
    "REG_ID": 2, "REG_TEXT": "Password", "REG_VALUE": "",
    "REG_IS_REQUIRED": "true", "REG_TYPE": "password"
  }, {
    "REG_ID": 3, "REG_TEXT": "First Name",
    "REG_VALUE": "", "REG_IS_REQUIRED": "true", "REG_TYPE": "text"
  }, ],
  "MAINHEADING": "CONSUMER SIGNUP",
  "SUBHEADER": "ACCOUNT - CONSUMER - SIGN UP",
  "IS_ACTIVE": "TRUE"
};
我正在寻找具有嵌套值的输出。我的要求是有更多的嵌套值。我正在寻找一个起点


我也尝试过将ORMs与ExpressJS结合使用,但在将ExpressJS与Oracle结合使用时,每种方法都有各自的缺点。谢谢。

您可以执行多个查询,然后使用结果构建更复杂的数据结构,然后发送出去。看看这个:

另外,请注意,不应将数据库错误发送给客户端。这将为SQL注入打开大门,因为它允许人们了解更多有关数据库的信息。向客户端发送一条通用消息,并记录实际错误,以便进行调试


我很好奇,您尝试了哪些ORM,有哪些缺点?

我会仔细研究。看起来它给了我想要的东西。我要看的orm是Sworm(),Typeorm()