a***@163.com
a***@163.com
  • 发布:2024-05-26 03:40
  • 更新:2024-05-27 11:04
  • 阅读:98

记一次使用支付宝云函数踩的坑:Error:用户函数代码语法或逻辑异常,日志错误信息“invalid ELF header”

分类:uniCloud

在云函数使用了bcrypt包

const bcrypt = require("bcrypt");

本地调试没有任何问题,云端调试开始报错:

Error: [login]: 用户函数代码语法或逻辑异常

函数运行日志报错:

... node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header ...

解决:

询问ai:(粘贴整段报错)

您遇到的错误信息与Node.js应用程序中的bcrypt模块有关,这个模块通常用于密码的散列和加密。错误信息“invalid ELF header”表明模块尝试加载的二进制文件(bcrypt_lib.node)存在问题。这个问题可能由以下几个原因引起:
架构不兼容:二进制文件可能为与您运行系统不同的CPU架构编译。例如,如果二进制文件是为x64架构编译的,但在ARM架构的系统上运行,就会发生这个错误。
Node ABI版本不匹配:二进制文件的Node应用二进制接口(ABI)版本可能与您使用的Node.js运行时的ABI版本不匹配。这通常在切换Node.js版本后没有重新编译本地模块时发生。二进制文件损坏或不正确:二进制文件可能已损坏,或者可能不是适用于您系统的正确文件。

ai没有给出具体可行的方案,继续询问:“换一个架构兼容的包”,回答:

安装预编译的二进制版本:一些包提供了预编译的二进制版本,这些版本可以在不同的架构上运行。尝试使用这些预编译版本可能会解决问题。例如,对于bcrypt,您可以尝试安装bcryptjs,这是一个纯JavaScript实现的bcrypt替代品,不需要编译

更换为 bcryptjs 成功解决问题

const bcrypt = require("bcryptjs");
1 关注 分享
DCloud_UNI_CHB

要回复文章请先登录注册

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

bcrypt这个模块是在公共模块内引用的吗?
2024-05-27 11:04
a***@163.com

a***@163.com (作者)

非常好ai,不然这日志真看不懂
2024-05-26 03:41