У меня проблема с Oracle Массив в Node.js
function simpleExecute(statement, binds = [], opts = {}) {
return new Promise(async (resolve, reject) => {
let conn;
opts.outFormat = oracledb.OUT_FORMAT_OBJECT;
opts.autoCommit = true;
try {
conn = await oracledb.getConnection();
const result = await conn.execute(statement, binds, opts);
console.log(result);
resolve(result);
} catch (err) {
reject(err);
} finally {
if (conn) {
// conn assignment worked, need to close
try {
await conn.close();
} catch (err) {
console.log(err);
}
}
}
});
}
module.exports.simpleExecute = simpleExecute;
В функции simpleExecute все работает хорошо. console.log отображает данные правильно
{
board_id: 242,
name: 'School at School',
user_name: 'David',
user_url: 'ej',
background_regular: 'red',
background_thumb: 'https://images.unsplash.com/photo-1558981806-ec527fa84c39?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjEyNTU3NX0',
list_order: [USER_TEST.LIST_ORDER] [ 'WMCBQaBQtQ66' ],
important: 0
},
, но когда я передаю ответ обратно функции getAll
async function getAll(user) {
user.user_id = parseInt(user.user_id, 10);
const query = `SELECT
BOARD_ID "board_id",
NAME "name",
t.background.user_name "user_name" ,
t.background.user_url "user_url" ,
t.background.background_regular "background_regular" ,
t.background.background_thumb "background_thumb" ,
t.LIST_ORDER "list_order",
IMPORTANT "important"
from TO_DO_TABLE t
WHERE USER_ID=:user_id`;
const result = await database.simpleExecute(query, user);
console.log(result);
return result.rows;
}
Console.log отображает ошибку
Error: DPI-1010: not connected
at DbObject._toPojo (C:\Users\David\Desktop\BD_2020\back-end\node_modules\oracledb\lib\dbObject.js:48:19)
at Proxy.[nodejs.util.inspect.custom] (C:\Users\David\Desktop\BD_2020\back-end\node_modules\oracledb\lib\dbObject.js:63:54)
at formatValue (internal/util/inspect.js:693:31)
at formatProperty (internal/util/inspect.js:1558:11)
at formatRaw (internal/util/inspect.js:933:9)
at formatValue (internal/util/inspect.js:721:10)
at formatProperty (internal/util/inspect.js:1558:11)
at formatArray (internal/util/inspect.js:1380:17)
at formatRaw (internal/util/inspect.js:930:14)
at formatValue (internal/util/inspect.js:721:10)
Проблема в этом Oracle Массив
list_order: [USER_TEST.LIST_ORDER] [ 'WMCBQaBQtQ66' ]
Я понятия не имею, что происходит, почему я могу отображать этот Массив в одной функции, а не в другой
РЕДАКТИРОВАТЬ:
Если я не закрываю соединение после выполнения функции simpleExecute, все в порядке, но есть ли возможность извлечь эти данные и получить sh выше, несмотря на закрытие соединения