在前端开发中,经常需要从数据库中获取数据以及将数据写入数据库。Oracle 数据库是一个非常常见的关系型数据库,而 Express.js 是一个流行的 Node.js Web 框架。本文将介绍如何在 Express.js 中连接 Oracle 数据库,并提供示例代码及指导意义。
安装所需模块
在连接 Oracle 数据库之前,需要安装以下两个模块:
- oracledb:Oracle 数据库驱动程序;
- dotenv:加载环境变量。
安装上述模块,可使用以下命令:
npm install oracledb dotenv
配置环境变量
在项目根目录下创建 .env
文件,用于设置环境变量。在文件中添加如下代码,根据数据库的实际情况修改内容。
DB_USER=user DB_PASSWORD=password DB_CONNECTIONSTRING=127.0.0.1:1521/orcl
连接 Oracle 数据库
在 Express.js 中使用 oracledb 模块连接 Oracle 数据库,代码如下:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ------------------ ---------------- --------------------------- ------- ----------------------- --- ----- -------- ------------ - ----- ---------- - ----- ------------------------ ----- -------------------- --------- ------------------------ -------------- -------------------------------- --- ------ ----------- - ------------------------- - -----------
上述代码中,首先加载 oracledb 和 dotenv 模块,并调用 dotenv.config()
方法加载 .env
文件中的环境变量。
然后使用 oracledb.initOracleClient()
方法初始化 Oracle 客户端,并传入 libDir
参数指定 Oracle 客户端的目录。这里使用 .env
文件中的 ORACLE_HOME
变量指定目录。
接着,使用 oracledb.getConnection()
方法连接数据库,并传入 user
,password
和 connectString
参数。这里的参数使用 .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