我想连接我的Oracle云数据库,它被称为独立数据库,并且已经设法与NODEJS(oracle documentation)建立连接,但我仍然无法使用ORM实现,并且我在使用www.example.com时遇到了问题Typeorm.io,它说它与Oracle兼容,但我不知道如何做到这一点。我希望你能帮助我:
They are connection data = {censorship}
这是我的文件db.ts
尝试使用Typeorm.io
import {
createConnection
} from "typeorm";
createConnection({
type: "oracle",
username: "admin",
password: "{censorship}",
database: "DB{censorship}_high",
synchronize: true,
logging: false
}).then(connection => {
console.log('connect database')
}).catch(error => console.log(error));
这是我的连接文件,对我来说正确工作db.js
const oracledb = require('oracledb');
let dbConfig = require('./dbconfig');
oracledb.initOracleClient({
libDir: 'D:\\MaterialSkywork\\Oracle\\instantclient_21_3'
});
console.log(dbConfig)
async function Open(sql, binds, autoCommit) {
let cnn = await oracledb.getConnection(dbConfig);
let result = await cnn.execute(sql, binds, {
autoCommit
});
cnn.release();
return result;
}
exports.Open = Open;
这是我对autonome数据库index.js
的测试
const BD = require('./db.js');
async function start() {
sql = "select * from elopez.orders";
let result = await BD.Open(sql, [], false);
Orders = [];
result.rows.map(order => {
let userSchema = {
"order": order[0],
"order_status": order[3],
}
Orders.push(userSchema);
})
console.log(Orders);
}
start()
或者,如果你不能,我怎么能把我的db.js
文件迁移到db.ts
,我试过了,但是我有很多问题,通过Typescript和开放给你的意见,以改善我的代码,并使用良好的做法,以避免任何漏洞,谢谢。
1条答案
按热度按时间lsmd5eda1#
要首先将db.js迁移到db.ts,您需要确保安装了OracleDB TypeScript声明:
现在,让我们将db.js文件迁移到db.ts:
改进和良好做法:
1.使用promises/await和Promises:使用Promises/await和Promises是处理数据库连接和查询等异步操作的良好实践。
1.正确处理连接释放:我添加了一个finally块来确保数据库连接被正确释放,即使在异常的情况下也是如此。
1.类型注解:TypeScript的静态类型有助于在开发过程中捕获潜在的错误。我在必要的地方添加了类型注解。
1.采购b:从模块中导入oracledb和Connection以获取类型信息,以便更好地进行类型检查。
1.配置连接:连接配置对象(dbConfig)现在已使用正确的类型定义。
1.使用ES6导出:我已经切换到使用ES6导出而不是module. exports。这与现代JavaScript实践和TypeScript保持一致。
1.文件格式约定:通常,TypeScript文件以.ts扩展名命名。