首页
学习
活动
专区
工具
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 数据库。

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

相关·内容

NodeJs连接Oracle数据库

nodejs连接oracle数据库,各个平台官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我nodejs...连接Oracle配置,运行环境: windows7 x64 nodejs 0.12.7 Python 2.7.10 npm 2.11.3 运行原理分析 npm调用下载,下载成功之后交由oracle客户端解析驱动包...实现步骤简介 1、下载解压需要安装包(2个) 2、添加环境变量 3、npm执行安装命令 4、查询demo代码 5、常见错误解决方案 安装详情 1、下载解压需要安装包(2个) 下载页面:http://www.oracle.com...c:\xxx\oracledb.node… 解放方案:服务器安装版本与环境变量OCI_INC_DIR、OCI_LIB_DIR版本不符,设置版本为一致即可,参照上面步骤2,配置完成之后,删除之前下载...oracledb模块,重新下载oracledb模块(npm install oracledb)即可。

4.4K100

如何在 npm 上发布二进制文件

Darwin(arm) Darwin(arm64) Darwin(x64) Linux (arm) Windows (i686) Windows (x64) 针对f_cli我们只兼容比较场景开发环境。...(后期有需要会兼容更多版本) Darwin(arm64) - MacOSM1版本 Darwin(x64) - MacOSIntel版本 Windows (x64) - Windows 安装指定target...构建&发布目标npm项目 我们目标是- 将build后二进制文件放置到npm包中,然后通过node进行下载安装。 如果将所有平台二进制放到一个npm是极其耗费流量。...isPlatformSpecificPackageInstalled()) { console.log('未找到平台特定软件包。将手动下载二进制文件。')...如果你当前工作环境中只有一个Node环境,因为我们cli中存在文件写入操作,此时在执行命令时,会有一个写入操作权限错误警告。 其实这是一类错误,也就是npm在执行时候需要sudo操作权限。

18610
  • Electron框架 介绍

    注意 因为 Electron 将 Node.js 嵌入到其二进制文件中,你应用运行时 Node.js 版本与你系统中运行 Node.js 版本无关。 2.2. 创建你应用程序 2.2.1....使用脚手架创建 Electron 应用程序遵循与其他 Node.js 项目相同结构。 首先创建一个文件夹并初始化 npm 包。...Electron 在您项目根目录运行 此时,您应用将立即抛出一个错误提示您它无法找到要运行应用 2.2.2....要初始化这个main文件,需要在您项目的根目录下创建一个名为main.js文件。 注意:如果您此时再次运行start命令,您应用将不再抛出任何错误!...== 'darwin') app.quit() }) // 在这个文件中,你可以包含应用程序剩余所有部分代码, // 也可以拆分成几个文件,然后用 require 导入。

    48900

    Electron 介绍

    要检查 Node.js 是否正确安装,请在您终端输入以下命令: node -v npm -v 这两个命令应输出了 Node.js 和 npm 版本信息。...注意 因为 Electron 将 Node.js 嵌入到其二进制文件中,你应用运行时 Node.js 版本与你系统中运行 Node.js 版本无关。...# 创建你应用程序 # 使用脚手架创建 Electron 应用程序遵循与其他 Node.js 项目相同结构。 首先创建一个文件夹并初始化 npm 包。...要初始化这个main文件,需要在您项目的根目录下创建一个名为main.js文件。 注意:如果您此时再次运行start命令,您应用将不再抛出任何错误!...== 'darwin') app.quit() }) // 在这个文件中,你可以包含应用程序剩余所有部分代码, // 也可以拆分成几个文件,然后用 require 导入。

    2.3K10

    Bash: Command Not Found命令未找到

    但有时,你会遇到终端打印command not found未找到命令错误。...你必须自己尝试解决这些错误。根据错误提示分析原因。有时候错误提示也直接说明它原因。比如这个bash: command not found命令未找到错误已经给出了提示。...虽然你Linux发行版默认安装了大量命令,但不可能在系统中安装所有命令行工具。如果你尝试运行命令不是流行常用命令,则必须使用发行版包管理器来安装它apt命令,dnf命令或者yum命令。...这个变量有一个目录集合,这些目录有各种Linux命令二进制(可执行)文件。当你运行命令时,你Linux系统shell会检查PATH环境变量以查找该命令可执行文件。...你可以使用以下which命令检查命令二进制文件位置: which zsh ##output /usr/bin/zsh which ping ##output /usr/bin/ping 如果要从系统上任何位置运行可执行文件或脚本

    5.6K10

    M1 Mac上更好 Golang 使用方案

    接着,我们就正常可以使用 go 了,比如执行 go version: go1.18.2 darwin/arm64 如何使用 gvm 进行多版本切换 想使用不同版本 golang 方法和上面其实并没有什么不同...简单来说,如果遇到下载二进制文件出现问题,可以尝试进行缓存清理: rm -rf ~/.gvm/archive/ 好了,关于 gvm 使用部分就讲完了。 聊聊为了解决“兼容性”问题,我做了哪些事情。...如果我们使用官方命令进行 gvm 安装,大概率会碰到几个问题导致不能安装,当我们使用 install 命令进行安装时候,默认版本会告诉我们发生了下面的错误: # gvm install go1.18.2..." elif [ "$(uname -m)" == "arm64" ]; then GVM_ARCH="arm64" else GVM_ARCH="386" fi 更新完毕程序之后...,我们再次执行 install 命令,会得到一个新错误: # gvm install go1.18 -B Installing go1.18.2 from binary source ERROR:

    1.2K20

    M1 芯片 Mac 上更好 Golang 使用方案

    接着,我们就正常可以使用 go 了,比如执行 go version: go1.18.2 darwin/arm64 如何使用 gvm 进行多版本切换 想使用不同版本 golang 方法和上面其实并没有什么不同...简单来说,如果遇到下载二进制文件出现问题,可以尝试进行缓存清理: rm -rf ~/.gvm/archive/ 好了,关于 gvm 使用部分就讲完了。 聊聊为了解决“兼容性”问题,我做了哪些事情。...如果我们使用官方命令进行 gvm 安装,大概率会碰到几个问题导致不能安装,当我们使用 install 命令进行安装时候,默认版本会告诉我们发生了下面的错误: # gvm install go1.18.2..." elif [ "$(uname -m)" == "arm64" ]; then GVM_ARCH="arm64" else GVM_ARCH="386" fi...更新完毕程序之后,我们再次执行 install 命令,会得到一个新错误: # gvm install go1.18 -B Installing go1.18.2 from binary source

    2.2K20

    go1.16来啦

    Go项目迅速做出反应,通过添加GOOS = darwin和GOARCH = arm64环境变量对ARM Mac本机进行支持。...=arm64 GOOS=darwin go build myapp 静态资源文件嵌入二进制文件 关于使用Go最好事情之一就是可以将已编译程序作为单个不需要依赖二进制文件进行分发和执行。...当程序依赖于静态文件,比如HTML模板,数据库迁移文件,Web程序资源(例如JavaScript或图像文件文件)时,通常必须将它们与二进制文件一起分发,除非将它们嵌入到二进制文件中,否则这种优势会有所抵消...之前我们或许通过第三方软件包(例如pkger或packr)帮助可以完成这项任务。但随着Go 1.16发布,现在可以通过新embed包原生得将静态文件本地包含在Go二进制文件中。...如果使用go build生成程序并将生成二进制文件移动到其他位置,则会注意到执行该程序仍然会将嵌入式文件内容打印到标准输出中。

    80220

    【保姆级教程】Docker服务在双架构(X86和ARM)编译统一实践

    在第一阶段,构建出对应架构服务二进制文件;在第二阶段,运行对应架构二进制文件,下面是两个基于DebianDockerfile文件示例,分别用于构建X86架构和ARM64架构Docker镜像: 1...X86架构Dockerfile文件使用了debian:latest作为基础镜像,而ARM64架构Dockerfile文件使用了arm64v8/debian:latest作为基础镜像。...此外,ARM64架构Dockerfile文件在FROM语句中使用了arm64v8标识符,以指定ARM64架构。最后,CMD执行安装脚本也不一样,应该是不同环境需要不同安装脚本。    ...然后,使用docker manifest create命令创建一个名为myapp:latestmanifest文件,并将myapp:x86和myapp:arm64标签添加到manifest文件中。...#cgo darwin #cgo darwin指令符可以用来指定macOS操作系统下编译选项。在进行多架构编译时,我们可以使用#cgo darwin指令符来指定不同操作系统下编译选项。

    1.4K60

    【保姆级教程】Docker服务在双架构(X86和ARM)编译统一实践

    在第一阶段,构建出对应架构服务二进制文件;在第二阶段,运行对应架构二进制文件,下面是两个基于DebianDockerfile文件示例,分别用于构建X86架构和ARM64架构Docker镜像:1....X86架构Dockerfile文件使用了debian:latest作为基础镜像,而ARM64架构Dockerfile文件使用了arm64v8/debian:latest作为基础镜像。...此外,ARM64架构Dockerfile文件在FROM语句中使用了arm64v8标识符,以指定ARM64架构。最后,CMD执行安装脚本也不一样,应该是不同环境需要不同安装脚本。   ...然后,使用docker manifest create命令创建一个名为myapp:latestmanifest文件,并将myapp:x86和myapp:arm64标签添加到manifest文件中。...#cgo darwin#cgo darwin指令符可以用来指定macOS操作系统下编译选项。在进行多架构编译时,我们可以使用#cgo darwin指令符来指定不同操作系统下编译选项。

    6.3K51

    edex-UI实现你黑客梦

    虽然说此款终端模拟器没有太大实际用途,但是基础查看系统参数、进程、文件目录浏览以及网络监控还是可以操作。...图源自电影《Tron: Legacy 创 :世纪》 感兴趣朋友直接下载对应系统编译好二进制文件直接运行即可。 介绍到这就完了吗?当然不是,我个人是比较喜欢这个项目的,想做一点自己小贡献。...而且我在使用过程中发现,项目在windows版本中对中文支持不够友好,所以大家在windows上运行时候,可能无法正常输入输出汉字,如果目录中包含中文字符也会出现意外错误。...build-linux or build-windows or build-darwin 构建好应用会在dist目录下。...存在问题: 这边尝试node高于14版本,会出现各种版本依赖错误,尝试过二次开发朋友可以共同交流。

    38620

    初探k0s

    部署k0s 为写这篇文章我斥巨资5元钱购买竞价实例来做实验 获取构建二进制文件 构建二进制文件简称二进制包,由于k0s官网懒得做各类发行版本包,所以只有linux全发行版通用二进制文件,如下所述 引用...因此,单一二进制文件包装模型允许我们更多地关注核心问题,而不是包装不同风格,如DEBs、rpm和其他。...https://github.com/k0sproject/k0s/releases/download/v0.9.1/k0s-v0.9.1-amd64 -O /usr/local/bin/k0s #获取构建二进制文件...该错误可忽视毕竟真没将k8s安装进系统也没正确配置文件 启动k0s mkdir -p ${HOME}/.k0s #在当前用户目录下创建.k0s文件 一般为 /home/username/.k0s k0s...k0s.service配置,例如在k0s.server添加arm64环境变量,这样就不需要手动export了 请使用你最拿手编辑器修改此文件/etc/systemd/system/k0s.service

    2.1K00

    Go 1.19 发行说明(翻译)

    即使静态链接,编译后二进制文件也无法在这些系统上运行。此类不受支持系统上用户仅限于分发提供 Go 包。 4.2 RISC-V 该 riscv64 端口现在支持使用寄存器传递函数参数和结果。...此内存限制包括 Go 堆和运行时管理所有其他内存,不包括外部内存源,例如二进制文件本身映射、其他语言管理内存以及操作系统代表 Go 程序持有的内存。...在 ARM64 上添加了对调试器注入函数调用支持,使用户能够在使用经过更新以利用此功能调试器时,在交互式调试会话中从其二进制文件调用函数。...(仅限 GOARCH=amd64 和 GOARCH=arm64) Go 编译器现在需要 -p=importpath 标志来构建可链接目标文件。这已经由 go 命令和 Bazel 提供。...这消除了一个常见安全问题来源, 但也可能破坏现有的程序,这些程序依赖于在当前目录使用exec.Command("prog")中运行名为 prog(或在 Windows 上叫 prog.exe)二进制文件

    1.2K20

    go1.18新特性(翻译)

    虽然我们相信这个新语言功能设计得很好,并且定义明确,但我们也可能犯了错误。...接口现在定义是一组类型和一组方法集合。 新声明标识符any是空接口别名。它可以用来代替interface{}。 新声明标识符comparable是一个接口,它表示可以使用==或!...windows windows/arm和windows/arm64接口现在支持非协作式抢占,将该功能引入所有四个windows接口,有望解决在调用长时间阻塞Win32函数时遇到细微错误。...由于编译器类型检查器被完全替换以支持泛型,因此一些错误消息现在可能会使用与以前不同措辞。在某些情况下,pre Go 1.18错误消息提供了更详细信息,或者以更有用方式表达。...因此,大多数代码库将更快地链接,需要更少内存来链接,并生成更小二进制文件。处理Go二进制文件工具应该使用Go 1.18debug/gosym包来透明地处理新旧二进制文件

    1.5K10

    谷歌发布 TensorFlow 1.5,全面支持动态图机制和 TensorFlow Lite

    AI 研习社将此次更新编译整理如下: 重大改变 基于 CUDA 9 和 cuDNN 7 来构建二进制文件; Linux 二进制文件是在 ubuntu 16 容器环境下构建,这可能会导致与用...ubuntu 14 构建文件不兼容; 从 1.6 版本开始,二进制文件中将会使用 AVX 指令集,如果老版本不支持 AVX 指令集,将会引发问题。...主要更新 支持 Eager execution 预览版本 TensorFlow Eager Execution 是一个命令式、由运行定义接口,可以在即时运行错误下进行快速调试,与 Python 工具进行整合...具备如下三点特征: 轻量级:支持机器学习模型推理在较小二进制数下进行,能快速初始化 / 启动。 跨平台:可以在许多不同平台上运行,现在支持 Android 和 iOS。...tf.contrib.distributions QuadratureCompound 类支持 batch Stream::BlockHostUntilDone 现在 return 到 Status,而不是 bool GCS 文件系统中定制化请求超时

    1.1K40

    Android NDK开发基础

    文件,使用loadLibrary来加载 System.loadLibrary("nativeLib"); // 2.对于文件系统中so文件,使用load()来加载...2.1 CMake基础 CMake官网介绍如下,翻译过来就是,CMake是开源、跨平台编译工具,可以根据所指定编译环境生成对应makefile文件。...:.so文件可以在运行过程中由java代码调用加载,.a文件不能在运行过程中直接由java代码加载;so文件在运行中可以去加载其他so文件或者a文件; ndk目录下readelf命令可以查看so(符号表等...CPU 与指令集每种组合都有专属应用二进制接口 (ABI)。CPU 与指令集每种组合都有专属应用二进制接口 (ABI)。 默认情况下,Gradle会针对所有非弃用ABI进行构建。...# -e 打印错误地址对应路径及行数 # ${SOPATH} so路径 # ${Address} crash堆栈地址 # 示例如下: >arm-linux-androideabi-addr2line

    1.9K21
    领券