MongoDB Stitch Webhook中的"then is not a function"



MongoDB Stitch Webhook 文档描述了我的精确用例:使用 POST 方法调用insertOne然后返回插入的_id。

我将下面的示例(直接从文档中(粘贴到Stitch函数编辑器中。

exports = function(payload, response) {
  const mongodb = context.services.get("mongodb-atlas");
  const requestLogs = mongodb.db("test").collection("requestlogs");
  requestLogs.insertOne({
    body: EJSON.parse(payload.body.text()),
    query: payload.query
  }).then(result => {
    response.setStatusCode(201);
    response.setBody(result.insertedId);
  })
};

我在函数编辑器控制台中通过调用以下命令执行了该函数:

exports({query: {arg1: 'hello', arg2: "world!"}, body:BSON.Binary.fromText('{"msg": "world"}')})

返回一个错误,指示.then不是函数。

错误

:类型错误:">then"不是函数

是文档错了,还是我误入歧途了?

某些方法(如 .then (在函数编辑器中抛出错误。就我而言,这是函数编辑器的缺点,而不是代码中的错误。使用 fetch 或 Postman 调用 webhook,函数按预期执行。

传入的 Webhook 文档包含一个特别说明:

如果要调试来自函数的 Webhook 函数响应 编辑器,您必须手动提供 HTTP 响应对象时 运行函数。

exports( { body: "此文档是 webhook payload" }, new HTTPResponse((

这提醒了我函数编辑器作为JS处理程序的特殊性质。使用Postman,我确认函数在调用时运行时没有错误。函数编辑器生成的错误是红鲱鱼。

相关内容

最新更新