如何在AWS Lambda上在nodejs和mongodb之间建立连接?

时间:2019-02-28 18:21:28

标签: node.js mongodb aws-lambda

我在我的项目中使用MongoDB数据库和Aws lambda函数。当我尝试通过Aws lambda节点js函数访问Mongodb dataabse时,出现一些错误。找到以下代码

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://username:password@localhost:27017/";

MongoClient.connect(url, function(err, db) {
if (err) throw err;
});

我在下面看到这样的错误:

Response:
{
"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/index.js:1:81)",
"Module._compile (module.js:652:30)",
"Object.Module._extensions..js (module.js:663:10)",
"Module.load (module.js:565:32)",
"tryModuleLoad (module.js:505:12)",
"Function.Module._load (module.js:497:3)"

] }

如何通过node.js连接mongdb和aws lambda函数??

2 个答案:

答案 0 :(得分:2)

我认为您忘记了npm安装模块。 试试

npm install mongodb

答案 1 :(得分:0)

您在这里需要解决一些问题:

  • 您需要按上述说明安装mongodb。我不确定如何部署到AWS Lambda,但通常将其安装在本地,然后将其添加到package.json文件中。然后,一旦部署,AWS就会读取该文件并将其安装在Lambda实例上。

  • 您的Lambda实例将无法访问您的本地主机 数据库实例,因为它仅在您的计算机本地。您可以在这里设置一个 https://www.mongodb.com/cloud/atlas,然后使用该数据库URL来 从您的AWS Lambda实例连接。

  • 如果您正在使用本地主机,则数据库URL应该为 "mongodb://localhost:27017/";。您只包括 实际上是您使用它们时的username:password部分。