将使用Oracle云数据库的Node.js项目部署到Azure App Service



我有一个Node JS应用程序,它使用Oracle云匿名数据库,目前在本地与我的应用程序完美配合。我想在Azure应用程序服务上部署这个应用程序,所以我遵循这个微软文档链接使用这个,我能够部署我的项目,它在服务器上运行,但不幸的是,它无法连接到我的oracle could数据库

在部署时,我得到了一些日志,上面写着

** Node-oracledb 4.2.0 installed for Node.js 14.17.4 (linux, x64)
oracledb **
oracledb ** To use node-oracledb:
oracledb ** - Oracle Client libraries (64-bit) must be configured with ldconfig or LD_LIBRARY_PATH
oracledb ** - To get libraries, install an Instant Client Basic or Basic Light package from
oracledb **   https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
oracledb **
oracledb ** Installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
oracledb 

所以从这个,我不知何故明白,我需要在Linux服务器上配置Oracle客户端,所以花了几个小时后,我得到了一个解决方案,我需要在这里设置路径是Oracle文档,但即使这个设置没有为我工作,仍然无法连接它。另外,我注意到的另一件事是,一旦我重新部署或重新启动我的应用程序服务,设置就会消失

对于oracle,我有数据库名称,密码,连接字符串,oracle还为我提供了包含tnsnames和cwaller.sso的waller.zip

已经花了3天的时间来理解这个问题,如果有人可以帮助它将是伟大的,请评论,如果你需要更多的细节来理解我的问题

这不是一个完整的答案(即,它太大了,不适合注释)。

从升级到最新版本的node-oracledb开始,例如5.2。

听起来好像你知道如何处理钱包文件,但这里是node-oracledb关于连接到Oracle云自治数据库的文档。如果你没有钱包文件在默认位置,你可以(使用node-oracledb 5)使用initOracleClient({configDir:'/your/path'})来指示它们的位置。

最后一步是将LD_LIBRARY_PATH设置为您的Instant Client库的位置。搜索Azure文档了解如何做到这一点-我没有这种环境的经验。

最新更新