韩唐伯石 2022-07-30 18:58 采纳率: 55%
浏览 42
已结题

对于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(不是这两个变量名,而是他们指向的对象所包含的操作和信息)两个参数。这些回调函数都该怎么理解呢?

  • 写回答

4条回答 默认 最新

  • Heerey525 前端领域新星创作者 2022-07-31 00:16
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 谷雨睡不醒 2022-07-30 19:41
    关注

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

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

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

    评论 编辑记录
  • 虎子8 2022-07-30 23:46
    关注

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

    评论
  • 与猿共舞 2022-07-31 07:59
    关注

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

    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月8日
  • 已采纳回答 7月31日
  • 创建了问题 7月30日

悬赏问题

  • ¥30 宾馆客房管理系统可视化
  • ¥15 java为什么这个按钮监听事件不触发
  • ¥20 unity打光没有照亮物体
  • ¥25 powershell如何拷贝1周前的文件
  • ¥15 询问MYSQL查询SQLSERVER数据表并比较差异后,更新MYSQL的数据表
  • ¥15 关于#前端#的问题,请各位专家解答!
  • ¥15 最小生成树问题 Prim算法和Kruskal算法
  • ¥25 医院住院病人呼叫器设计
  • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
  • ¥20 C语言字符串不区分大小写字典排序相关问题