首页 > 解决方案 > 将我的 nodejs/expressjs 应用程序部署到 AWS lambda 后出现 bcrypt 错误

问题描述

我正在尝试使我的express.js应用程序在AWS Lambda. 部署(使用serverless framework成功完成,但是当我测试我的请求时应用程序返回一个500 internal error。我的日志向我显示了这个错误:

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

我尝试替换bcrypt为,bcryptjs但问题仍然存在。

另外,在我的 中serverless.yml,我添加了以下行来强制 lambda 自行安装bcrypt,但显然它没有成功:

package:
  exclude:
    - node_modules/**

有什么建议吗?

标签: node.jsexpressaws-lambdaserverless-frameworkbcrypt

解决方案


首先,请包含节点模块。除了aws-sdk.

其次,您看到此错误是因为您可能在 mac OS 机器上开发,因此bycrypt您机器中的二进制文件最终会上传到 lambda。

请仔细检查,当您尝试时bcryptjs,您已完全bcrypt从项目依赖项中删除。


推荐阅读