对于express和nodejs里回调函数的一些疑惑

目前正在学习nodejs和express,但是对回调函数有些疑惑。
举个例子:

app.get("/login", function(req, res){})

这个函数的作用我知道,但为什么那个回调函数的两个参数req res包含着客户端、服务器相关信息?
我的意思是这是固定用法吗?get方法的回调函数里一定包含req res对象吗?这两个对象是从哪里传递过来的?

还有这个:

app.get("/login", function(req, res){
    req.on("data", function(chunk){
    })
})

req的on方法第一个参数一定对应一个固定的回调函数吗?比如,data就对应function(chunk)函数,而end则对应function()函数,里面的参数是不同的。这些也是固定用法吗?我的意思是data或者其他什么参数对应的回调函数function的参数是不一样的吗?他们的回调函数的参数包含的信息是不一样的吗?

处理这两个例子,这里还有很多比如:

Promise(function(resolve, reject){})//promise对象构造函数里的回调函数

const pool = mysql.createPool(config);
pool.getConnection(function(err, con){})
//等等

这些回调函数都是统一固定的用法吗?比如promise对象里的回调函数一定包含resolve, reject(不是这两个变量名,而是他们指向的对象所包含的操作和信息)两个参数。这些回调函数都该怎么理解呢?

可以肯定的回答是固定用法,express中get方法第二个参数是回调函数,而回调函数包含req和res两个参数也是定义好的
promise需要两个参数,通过resolve进入.then,通过reject进入.catch

我写一个伪代码来模拟一下回调函数的调用


funcation   someFun(fn){
    let a=1
    let b=2
    fn(a,b)
    return 0
}

这里的fn就是传进去的回调函数,其实就是get函数体里已经定义好了,运行的时候调用fn而已
get的回调函数需要什么参数是在get函数里面就已经定义好的,也是在调用get函数的时候传进去的

回调函数的参数怎么传,你要看一下源码。
1, req res 怎么传的 按住ctrl 点app.get get方法里面有怎么调用你的回调
2,req.on("data" 同理点到 On里面看他是怎么注册的, req又是怎么触发的, 这个可能复杂一点
3,getConnection 直接点进去看

express中get方法第二个参数是回调函数,而回调函数包含req和res两个参数也是定义好的
promise需要两个参数,通过resolve进入.then