你好,我是一个初学者在nodejs,我想连接到远程oracle数据库。
代码如下:
const express = require('express')
const oracledb = require('oracledb')
const app = express()
const port = 3000
oracledb.getConnection(
{
user : "xxx",
password : "xxx",
connectString : "(tns names connection string)))"
},
oracledb.connExecute
)
app.get('/', (req, res) => {
if(connExecute == true) {
console.log("Conexiune reusita");
} else {
console.log("Conexiune esuata");
}
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
当我在cmd中输入命令节点index.js时,我得到这个错误:
Example app listening on port 3000
node:internal/process/task_queues:96
runMicrotasks();
^
Error: NJS-009: invalid number of parameters
at processTicksAndRejections (node:internal/process/task_queues:96:5)
我已经用npm安装了oracledb。你能告诉我我做错了什么或给我和工作的例子。由于在调用getConnection函数时错过了等待同步调用。由于连接到数据库需要一些时间,因此这一行下面的代码执行时不等待连接建立。
同样,您可以简单地使用configs向getConnection()函数传递一个连接参数。
直接删除getConnection的第二个参数
const connection = await oracledb.getConnection(
{
user : "xxx",
password : "xxx",
connectString : "(tns names connection string)))"
}
);
if (connection) {
console.log("Successfully connected to DB!");
}
app.get('/', (req, res) => {
if(connection) {
console.log("Conexiune reusita");
} else {
console.log("Conexiune esuata");
}
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
或者
正如Matt在评论中建议的,你也可以使用
oracledb.getConnection(
{
user : "xxx",
password : "xxx",
connectString : "(tns names connection string)))"
}
).then((connection) => {
if (connection) {
console.log("Successfully connected to DB!");
}
}).catch((err) => {console.log(`Conexiune esuata! ${err}`);})