首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

npm错误!oracledb错误!NJS-067:未找到darwin arm64的预建node-oracledb二进制文件

基础概念

npm 是 Node.js 的包管理器,用于安装和管理 Node.js 应用程序的依赖项。oracledb 是一个 Node.js 模块,用于连接和操作 Oracle 数据库。

错误原因

错误信息 NJS-067: 未找到 darwin arm64 的预建 node-oracledb 二进制文件 表示在 macOS(darwin)的 ARM64 架构上没有找到预编译的 node-oracledb 二进制文件。

解决方法

1. 安装 Oracle Instant Client

首先,你需要安装 Oracle Instant Client,这是 node-oracledb 依赖的基础组件。你可以从 Oracle 官方网站下载并安装适合 macOS ARM64 的版本。

Oracle Instant Client 下载页面

2. 设置环境变量

安装完成后,设置环境变量以便 node-oracledb 能够找到 Oracle Instant Client。

代码语言:txt
复制
export ORACLE_HOME=/path/to/instantclient
export LD_LIBRARY_PATH=$ORACLE_HOME
export PATH=$ORACLE_HOME:$PATH

3. 重新安装 node-oracledb

在设置好环境变量后,重新安装 node-oracledb

代码语言:txt
复制
npm uninstall oracledb
npm install oracledb

4. 使用 node-oracledb 的自动编译选项

如果上述方法仍然无法解决问题,可以尝试使用 node-oracledb 的自动编译选项。首先,确保你已经安装了 Node.js 的构建工具:

代码语言:txt
复制
npm install -g node-gyp

然后,安装 node-oracledb 并启用自动编译:

代码语言:txt
复制
npm install oracledb --build-from-source

示例代码

以下是一个简单的示例代码,展示如何使用 node-oracledb 连接到 Oracle 数据库:

代码语言:txt
复制
const oracledb = require('oracledb');

async function runQuery() {
  let connection;
  try {
    connection = await oracledb.getConnection({
      user: 'your_username',
      password: 'your_password',
      connectString: 'your_connect_string'
    });

    const result = await connection.execute('SELECT * FROM your_table');
    console.log(result.rows);
  } catch (err) {
    console.error(err);
  } finally {
    if (connection) {
      try {
        await connection.close();
      } catch (err) {
        console.error(err);
      }
    }
  }
}

runQuery();

参考链接

通过上述步骤,你应该能够解决 NJS-067: 未找到 darwin arm64 的预建 node-oracledb 二进制文件 错误,并成功连接到 Oracle 数据库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Release 自动更新 Krew Index

    前面介绍过创建 Krew 插件的方法,其中生成插件描述文件的部分,可以说是又直接又麻烦,而且每次发布的时候,都要重新生成并刷新 Krew Index,于是我写了个脚本,可以根据既有信息和已经发布的二进制文件生成 YAML 文件。这个脚本的功能,简单说就是写一个 YAML 模板,然后下载二进制文件,计算哈希,生成最终的插件描述文件,把描述文件覆盖旧版本,然后发布 PR 即可。有了脚本之后其实还是挺麻烦的,不过在浏览 Krew 文档时发现有一节 Automating plugin updates ,其中提到了可以使用 Krew Release Bot 来自动地完成这个过程,官方强烈推荐使用这个 Bot 进行更新,理由是该 Bot 生成清单文件后自动提交的 PR,如果其中包含的变更内容只是简单的版本升级,能够被 Krew Index 的 Bot 自动处理,免除人工环节之后,整个更新过程可以在几分钟之内完成,避免了新版本二进制无法及时更新的尴尬。下面就介绍一下这个 Bot 的用法。

    02
    领券