首页 > 解决方案 > 无法将 Azure Functions 连接到 MongoDB(在 azure 中创建)

问题描述

我在 azure 上有一个 MongoDB 设置,我正在尝试通过 azure 函数连接到它。

这些是我采取的步骤:

  1. 创建一个简单的 Azure 函数
  2. 在 Azure 上安装了 MongoDB 驱动程序,要安装 MongoDB Node.js 驱动程序,我转到 .scm.azurewebsites.net,然后单击“调试控制台”->“PowerShell”。
  3. 我导航到 D:\home\site\wwwroot 目录并单击加号图标以创建一个名为 package.json 的新文件。
  4. 我创建并保存了以下 package.json 文件。

      {
      "name": "nameofunction",
      "dependencies": {
       "mongodb": "3.x"
      }
    }
    
  5. 接下来,我npm install从外壳中跑了出来。
  6. 从 Azure Function 我应该能够连接到 MongoDB 并使用以下代码执行查询。

    const  mongodb = require('mongodb');
    const  url = "mongodb://cosmod:  <PASSWORD>==@cosmodb.documents.azure.com:10255/?ssl=true&replicaSet=globaldb";
    
    module.exports = async function (context, req) {
        mongodb.connect(url, function(error, client) {        
          if (error) throw error;
          var dbo = client.db("mydb");
          dbo.createCollection("customers", function(err, res) {
             if (err) throw err;
             context.log("Collection created!");
             db.close();
          });         
       });
     };
    

我的代码抛出了一个Status: 500 Internal Server Error

我看代码的次数越多,我就越不明白为什么这不起作用。我在shell 中package-lock.json运行后加载了所有依赖项。npm install

感谢您为解决此问题提供的任何帮助。

标签: mongodbazureazure-functions

解决方案


这似乎很奇怪,我也遵循同样的方法并且能够连接到我的数据库。你能检查一下你的 cosmos connectiondb,mongo 兼容的连接字符串吗?你能从其他 mongo 客户端连接它吗


推荐阅读