Как сформировать и получить вложенный объект JSON из запроса с помощью oracledb с использованием NodeJS с ExpressJS
Я должен запросить набор данных, которые, как я ожидал, будут вложенными, чтобы сделать их более значимыми. При использовании ExpressJS с платформой oracledb для запроса данных, как показано ниже,
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. Благодарю.
1 ответ
Вы можете выполнить несколько запросов, а затем использовать результаты для построения более сложной структуры данных, которую вы отправляете. Посмотрите на это: https://jsao.io/2015/07/relational-to-json-with-node-js/
Также обратите внимание, что вы не должны отправлять ошибки базы данных клиенту. Это может открыть вам возможность внедрения SQL-кода, поскольку позволяет людям узнать больше о вашей базе данных, чем им следовало бы. Отправьте клиенту общее сообщение и зарегистрируйте фактическую ошибку, чтобы вы могли ее отладить.
Мне интересно, какие ORM вы пробовали и каковы были недостатки?