如何使用带有 ExpressJS 的 NodeJS 使用 oracledb 从查询中形成和获取嵌套的 JSON 对象
How to form and get nested JSON object from query using oracledb using NodeJS with ExpressJS
我必须查询一组数据,我希望将其嵌套以使其更有意义。使用带有 oracledb 框架的 ExpressJS 查询数据时,如下所示,
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"
};
我正在寻找具有嵌套值的此类输出。我的要求是要有更多的嵌套值。我正在寻找起点。
我也尝试过将 ORM 与 ExpressJS 一起使用,但在寻求将 ExpressJS 与 Oracle 一起使用时,每个都有自己的缺点。谢谢
您可以执行多个查询,然后使用结果构建您发送的更复杂的数据结构。看看这个:https://jsao.io/2015/07/relational-to-json-with-node-js/
另外请注意,您不应将数据库错误发送给客户端。这可能会让您面临 SQL 注入,因为它允许人们比他们应该了解的更多地了解您的数据库。向客户端发送一般消息并记录实际错误,以便您可以对其进行调试。
我很好奇,您尝试了哪些 ORM,缺点是什么?
我必须查询一组数据,我希望将其嵌套以使其更有意义。使用带有 oracledb 框架的 ExpressJS 查询数据时,如下所示,
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"
};
我正在寻找具有嵌套值的此类输出。我的要求是要有更多的嵌套值。我正在寻找起点。
我也尝试过将 ORM 与 ExpressJS 一起使用,但在寻求将 ExpressJS 与 Oracle 一起使用时,每个都有自己的缺点。谢谢
您可以执行多个查询,然后使用结果构建您发送的更复杂的数据结构。看看这个:https://jsao.io/2015/07/relational-to-json-with-node-js/
另外请注意,您不应将数据库错误发送给客户端。这可能会让您面临 SQL 注入,因为它允许人们比他们应该了解的更多地了解您的数据库。向客户端发送一般消息并记录实际错误,以便您可以对其进行调试。
我很好奇,您尝试了哪些 ORM,缺点是什么?