在云函数使用了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");
2 个评论
要回复文章请先登录或注册
DCloud_uniCloud_WYQ
a***@163.com (作者)