【发布时间】:2019-05-01 04:23:41
【问题描述】:
app.use(function(req, res, next) {
console.log(req)
});
当函数被调用时,该函数的实际参数在哪里传入,以及为函数提供参数的原因是什么。
意思是我对函数的理解是,首先你要有函数定义
function timesTwo(x){
return 2*x
}
其中 x 是一个参数。这段代码本身不会执行任何函数,因为它没有被调用并提供参数
timesTwo(3) //will return 6
仅因为我调用了函数并传递了 3 的参数才有效
为什么会这样
function(req, res, next) {
console.log(req)
});
如果我没有像 timesTwo 函数那样调用/提供参数就可以工作
【问题讨论】:
-
你将一个函数传递给
app.use,它会从那里被调用,在Javascript中你可以传递函数和变量。 -
这称为
callback函数。你不叫它。您将它传递给另一个执行某些操作的函数,当结果准备好时,它会使用参数调用您的callback函数。 -
但是在我的例子中,req,res 的来源不仅仅是像 'x' 这样的占位符参数。
-
app.use提供 req、res 和 next。 -
它们来自应用程序调用您的函数时。
标签: javascript node.js function express callback