调用端点函数时回调错误
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);
我收到了一份 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);