gpt4 book ai didi

node.js - AWS Lambda 错误 "Cannot find module ' mongodb'"

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:56 25 4
gpt4 key购买 nike

我已成功将函数部署到 AWS。

尝试调用该函数时(serverless invoke -f facebookAdInsert -l),出现以下错误:

{
"errorMessage": "Cannot find module 'mongodb'",
"errorType": "Error",
"stackTrace": [
"Function.Module._load (module.js:474:25)",
"Module.require (module.js:596:17)",
"require (internal/module.js:11:18)",
"Object.<anonymous> (/var/task/src/facebookAdInsert.js:222:18)",
"__webpack_require__ (/var/task/src/facebookAdInsert.js:20:30)",
"Object.<anonymous> (/var/task/src/facebookAdInsert.js:234:16)",
"__webpack_require__ (/var/task/src/facebookAdInsert.js:20:30)",
"Object.<anonymous> (/var/task/src/facebookAdInsert.js:303:16)",
"__webpack_require__ (/var/task/src/facebookAdInsert.js:20:30)"
]
}

这是我的依赖项:

"dependencies": {
"@babel/core": "^7.3.4",
"@babel/preset-env": "^7.3.4",
"aws-sdk": "^2.268.1",
"babel-loader": "^8.0.5",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"dotenv": "^6.0.0",
"moment": "^2.24.0",
"mongodb": "^3.1.10",
"mongoose": "^5.4.17",
"parse-mongo-url": "^1.1.1",
"request": "^2.88.0",
"serverless-offline": "^3.33.0",
"serverless-webpack": "^5.2.0",
"webpack": "^4.29.6",
"webpack-node-externals": "^1.7.2"
}

对于问题可能是什么有什么想法吗?根据我的研究,可能的解决方案是在部署之前运行 npm install 并将所有“devDependency”移动到“dependencies”,但这些都不起作用。

最佳答案

您缺少 AWS lambda 的 mongodb 层

打开终端并输入

  1. mkdir Nodejs
  2. cd Nodejs
  3. npm init -y
  4. npm 安装 mongodb
  5. 压缩整个nodejs文件夹,确保解压该文件夹时您会得到以下结构
    nodejs
+---node_modules
+---------- (mongodb and other folders)
  • 将此层上传到 AWS Lambda
  • 将该层添加到您的 Lambda 函数
  • 有了这个,它应该可以毫无问题地工作。

    问候

    关于node.js - AWS Lambda 错误 "Cannot find module ' mongodb'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151331/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com