MongoDB Stitch Webhook docs描述了我的确切用例:使用POST
方法调用insertOne
然后返回插入的_id。
我将下面的示例(直接从文档中)粘贴到了Stitch Function Editor中。
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
不是函数。
错误:TypeError:“那么”不是函数
文档错了吗?还是我误入歧途了?
答案 0 :(得分:0)
某些方法,例如.then
,在函数编辑器中引发错误。就我而言,这是函数编辑器的缺点,而不是代码中的错误。 使用fetch
或Postman调用Webhook,该函数按预期执行。
Incoming Webhook文档包含一个特殊说明:
如果要调试来自功能的Webhook函数响应 编辑器,则当您必须手动提供HTTP响应对象 运行该功能。
exports({正文:“此文档是webhook有效负载”},新 HTTPResponse())
这使我意识到函数编辑器作为JS处理程序的特质。使用Postman,我确认该函数在调用时没有错误。函数编辑器生成的错误是红色鲱鱼。