Express.js 如何连接 Oracle 数据库

阅读时长 4 分钟读完

在前端开发中,经常需要从数据库中获取数据以及将数据写入数据库。Oracle 数据库是一个非常常见的关系型数据库,而 Express.js 是一个流行的 Node.js Web 框架。本文将介绍如何在 Express.js 中连接 Oracle 数据库,并提供示例代码及指导意义。

安装所需模块

在连接 Oracle 数据库之前,需要安装以下两个模块:

  • oracledb:Oracle 数据库驱动程序;
  • dotenv:加载环境变量。

安装上述模块,可使用以下命令:

配置环境变量

在项目根目录下创建 .env 文件,用于设置环境变量。在文件中添加如下代码,根据数据库的实际情况修改内容。

连接 Oracle 数据库

在 Express.js 中使用 oracledb 模块连接 Oracle 数据库,代码如下:

-- -------------------- ---- -------
----- -------- - --------------------
----- ------ - ------------------

----------------

--------------------------- ------- ----------------------- ---

----- -------- ------------ -
  ----- ---------- - ----- ------------------------
    ----- --------------------
    --------- ------------------------
    -------------- --------------------------------
  ---

  ------ -----------
-

------------------------- - -----------

上述代码中,首先加载 oracledb 和 dotenv 模块,并调用 dotenv.config() 方法加载 .env 文件中的环境变量。

然后使用 oracledb.initOracleClient() 方法初始化 Oracle 客户端,并传入 libDir 参数指定 Oracle 客户端的目录。这里使用 .env 文件中的 ORACLE_HOME 变量指定目录。

接着,使用 oracledb.getConnection() 方法连接数据库,并传入 userpasswordconnectString 参数。这里的参数使用 .env 文件中的相应变量。

最后,将连接对象作为结果返回,供全局调用。

查询数据库

连接数据库之后,就可以查询数据库中的数据。以下是查询 Oracle 数据库中的 employees 表的示例代码:

-- -------------------- ---- -------
----- -------- - --------------------
----- -------- - ----------------------

----- -------- -------------- -
  ----- ---------- - ----- ----------------------

  ----- ------ - ----- -------------------
    ------- - ---- -----------
  --

  ----- -------------------

  ------ ------------
-

--------------------------- - -------------

上述代码中,首先调用 database.initialize() 方法获取数据库连接对象。

然后使用 connection.execute() 方法执行查询语句,并将结果保存在 result 变量中。

最后,调用 connection.close() 方法关闭连接,将查询结果的行数组作为结果返回。

总结

在 Express.js 中连接 Oracle 数据库,需要安装 oracledb 和 dotenv 两个模块,并在项目中使用环境变量存储数据库连接信息。

通过调用 oracledb.getConnection() 方法可连接 Oracle 数据库。查询语句可使用 connection.execute() 方法执行,查询结果可通过 result.rows 属性获取。

以上示例代码可供参考,希望对大家学习 Express.js 连接 Oracle 数据库有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ccd7ae5ad90b6d042d2284

纠错
反馈