调用端点函数时回调错误

Callback error when calling endpoint function

我收到了一份 Node.js api 文档,其中包含用于调试的 swagger。我还必须在其中添加一些功能,但是在代码中调用到达特定端点时执行的函数时遇到了一些麻烦。为了让我自己清楚:

var getCauById = async function (request, callback) {
    await CauModel.findById(request, function (err, result) {
        if (err) {
            callback(err);
        } else {
            callback(result);
        }
    });
}

当我 为它提供 request 参数中所需 ID 的参数时,

在 Swagger UI 中工作正常。请求 URL 示例:http://localhost:8000/api/cau/{id} 也可以正常工作。

但是当我尝试从代码的另一部分像这样调用它时:

const caus = require("../cau")

caus.getCauById("608ff7531ee4d422a201ff5a")

然后我得到 `TypeError: callback is not a function。那么回调 swagger(或端点执行)提供的是什么,我错过了。我知道这是对 API 和回调如何工作的一个非常基本的误解,因此非常感谢您的解释。

谢谢大家!

您已将 getCauById 定义为带有两个参数的函数,即请求和回调。但是您在调用该函数时不提供“回调”。回调需要是一个对错误或结果进行处理的函数。

例如:

const caus = require("../cau")
const myCallback = (resultOrError) => console.log(resultOrError);

caus.getCauById("608ff7531ee4d422a201ff5a", myCallback);