node.js - Azure Functions 在 Node 中加载 MongoDB 时发生崩溃

标签 node.js mongodb azure-functions

我正在尝试在 Node 中编写一个 Azure 函数来连接到 MongoDB 实例(在本例中为 Cosmos DB)。

但是,一旦我运行 require("mongodb") ,我的函数崩溃了,没有抛出错误,也没有记录任何内容,HTTP 响应返回 502代码。

我的设置:

  • 通过 Azure 门户使用所有默认设置创建函数应用。
  • 创建 package.jsonmongodb版本3.x .
  • 正在运行 npm install通过 Kudu shell
  • 在我的代码中包含 require 语句。
  • 向函数发出请求

这不会在代码中引发错误,并且我看到日志记录是在 require 语句之前运行的,而不是在 require 语句之后运行的(这使得调试非常困难)。

我也尝试过this guide关于从函数运行 mongo 查询,它对我来说以完全相同的方式失败。

将一些钩子(Hook)放入 Node 的 module 后模块,我尝试调试它导致 mongo 依赖项之一中的一行在隔离运行时以类似的方式失败( from saslprep ),这似乎源于堆栈空间不足。

但是,这感觉像是 Azure 函数的相当主流的用途,而且我没有看到任何类似的问题,因此我倾向于怀疑这是我的设置的问题,而不是 mongodb 的问题。库,但我无法找到错误配置,因为我没有更改任何默认值 - 现在,我很困惑!

我现在没有完整的代码示例,因为我远离工作计算机,但代码类似于

const mongo = require('mongodb');
module.exports = function(context) {
  context.res = {
    body: 'Hello world'
  };

  context.done();
}

如果没有 require 语句,代码可以正常运行,并将响应返回给浏览器。

最佳答案

原来这个问题是由于栈空间不足引起的。在将补丁推送到 saslprep 库 (v1.0.1) 后,此问题现已修复。

关于node.js - Azure Functions 在 Node 中加载 MongoDB 时发生崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51407924/

相关文章:

node.js - 对从 populate 返回的文档使用用户定义的模式方法

javascript - 评估 javascript 对象是否匹配 mongo 查询?

Azure Functions 存储帐户 : Used capacity is constantly rising

node.js - 使用 SinonJs 和 Mocha 测试包含 Promise 代码块的 Restify 路由处理程序

javascript - Azure 帐户共享访问签名

mongodb - Spark 数据帧从字符串到 UUID

php - io_stream.lo 安装 php 扩展时出现错误 1

python - 使用托管身份将 Function App 连接到 CosmosDB

azure - 暂停 Azure Function 直到第二天凌晨 12 点

node.js - nodejs http响应编码