«Тогда это не функция» в MongoDB Stitch Webhook - PullRequest
1 голос
/ 09 июня 2019

Документы 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' не является функцией

Неправильны ли документы, или я сбился с пути

1 Ответ

0 голосов
/ 28 июня 2019

Некоторые методы, такие как .then, выдают ошибки в редакторе функций. В моем случае это был недостаток редактора функций, а не ошибка в моем коде. Вызов webhook с fetch или почтальоном, функция выполняется как положено.

Документы Incoming Webhook содержат специальное примечание:

Если вы хотите отладить ответ функции webhook от функции редактор, вы должны вручную предоставить объект ответа HTTP, когда вы запустить функцию.

exports ({body: «Этот документ является полезной нагрузкой webhook»}, новый HTTPResponse ())

Это предупредило меня об уникальной природе редактора функций как обработчика JS. Используя Почтальон Я подтвердил, что функция запускалась без ошибок при вызове. Ошибка, сгенерированная редактором функций, была красной сельдью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...