在javascript中调用函数的不同方式

时间:2018-10-30 08:23:34

标签: javascript node.js

嘿,我当然是在学习Node,因为他们使一些变量等于函数

类似这样

INFO: Ephemeral certificate for Cloud SQL instance MYINSTANCE is about to expire, obtaining new one.

然后他们在中间件中调用它

const authCheck = (req, res, next) => {
    if (req.user) {
        next()
    } else {
        res.redirect("http://localhost:3000/")
    }

}

现在,我通常看到人们调用这样的函数router.post("/", authCheck, (req, res) => { 虽然可行,但我想了解两者之间的区别

1 个答案:

答案 0 :(得分:1)

router.post("/", authCheck, (req, res) => {该行实际上并未调用该函数。它将函数作为变量传递给router.post()函数。

一旦请求到达路由器功能,该路由器功能就会及时调用authCheck。

因此,正确的是,通过在函数名称后面写入()来调用函数。 请记住,函数就是所谓的“一流”,这意味着它们可以用作参数,并且可以随变量传递。

如果您要编写router.post("/", authCheck(), (req, res) => {,而不是将authCheck函数传递到路由器中,则应立即调用authCheck并将authCheck的返回值传递到router.post()中。