繁体   English   中英

为什么在request.post之后修改请求

[英]Why modify request after request.post

尝试理解他人创​​建的代码时出现的新手问题。 相信我,我试图理解这一点。 开始..

出于什么原因,在我们使用.post()获得所需内容并发送响应之后,仍然有人会在Request模块中调用.qs()和.json()之类的函数。 它们不能影响request.post,因为它们随后被调用了,对吗?

用我的技能,我无法从响应模块API文档(v2.22.0)中了解它们的实际作用。

这不是全部代码,但我尝试在此处获取重要部分:

// When request comes to /getthisapge, make external query and return data in JSON format.
var request = require('request');
module.exports = function(app) {
  app.get('/getthispage', function(req, res, next) {
    var filter = {};
    var query = {};
    filter.category = req.query.category;
    query.onBehalf = req.query.onBehalf;
    request.post(URIandoptions, function(error, response, body) {
      res.json(body.members)
    }).qs(query).json(filter);
  }
}

在不确切知道post函数做什么的情况下(对于您的问题而言是不必要的),您需要查看执行的顺序。

request.post(URIandoptions, function (error, response, body){ 
    res.json(body.members) 
}) 
.qs(query)        //  ?
.json(filter);    //  ?

传递到post()的函数在该特定时刻不会被调用。 它随心所欲地提供给post()函数。 从技术上讲,这意味着该函数可能永远不会被调用(取决于api)。

qs()json()都在返回先前函数时被调用。 通常,这种类型的api表示以下内容:

  • 调用post() ,传入要在完成时运行的函数
  • 调用qs()设置查询详细信息
  • 调用json()来告诉post函数如何执行操作,然后依次执行实际的post,并在检索到数据后运行完成函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM