如何在JavaScript回调中确定必要的参数

时间:2018-10-27 00:00:04

标签: javascript node.js callback

我一直在专注于javascript,尤其是node.js,但在确定回调所需的参数时遇到了麻烦。

例如,通过Express创建路线时,我可以拥有以下内容

app.get('/', function() {
  console.log('this is a route');
});

谁会执行而不会给我带来任何麻烦。但是,看过多个示例后,我知道我可能想进一步了解

app.get('/', function(req, res) {
  res.render('index');
});

但是在没有看到示例或文档(有时只是几个不清楚的示例)的情况下,是否有一致的方法来确定回调应具有的参数?

我希望我已经清楚了。

2 个答案:

答案 0 :(得分:1)

如果没有文档,也没有检查执行回调的函数的来源,您将不会轻易知道。

但是,您可以使用一些探索性代码来拦截它们,然后查看得到的结果:

app.get('/', function() {
  console.log(arguments);
});

这里的arguments关键字是传递给回调函数的参数列表,因此您可以看到所得到的内容。如果它告诉您某物是Express.Request或某物,则至少可以让您知道尝试在文档中找到什么。


但是在标准javascript之外,使用typescriptflow可以帮助解决此问题,因为它将静态类型添加到javascript中。如果键入了此函数,那么您的编辑器将知道回调函数期望的参数,并可以帮助您填写它们。

答案 1 :(得分:0)

由于您使用的是Express,因此documentation很清楚-它取决于您的路由参数以及是否使用中间件。没有硬性规定,这实际上取决于您的路线功能。

您的第一个示例“有效”是因为您仅打印到控制台,但是没有res响应对象,您会注意到请求响应什么都没有返回。

分别以reqres开头,并根据需要扩展。