使用 SuperAgent 构造查询字符串的当前机制是啥?

Posted

技术标签:

【中文标题】使用 SuperAgent 构造查询字符串的当前机制是啥?【英文标题】:What is the current mechanism to construct a query string with SuperAgent?使用 SuperAgent 构造查询字符串的当前机制是什么? 【发布时间】:2012-02-24 20:28:52 【问题描述】:

我正在尝试使用SuperAgent .data() to construct a query string per the docs。但是 .data() 似乎不再存在。

superagent
    .get(URL)
    .data( 'screen_name': USER, 'count': '1' )
    .end(function(response)        
        if (response.ok) 
            console.log('yay got ' + JSON.stringify(response.body));
         else 
            console.log('Oh no! error ' + response.text);
        
);

结果:

Object #<Request> has no method 'data'

【问题讨论】:

【参考方案1】:

尝试用.send替换.data

基于源中的 cmets:

  /**
   * Send `data`, defaulting the `.type()` to "json" when
   * an object is given.
   *
   * Examples:
   *
   *       // querystring
   *       request.get('/search')
   *         .send( search: 'query' )
   *         .end(callback)
   *
   *       // multiple data "writes"
   *       request.get('/search')
   *         .send( search: 'query' )
   *         .send( range: '1..5' )
   *         .send( order: 'desc' )
   *         .end(callback)
   *
   *       // manual json
   *       request.post('/user')
   *         .type('json')
   *         .send('"name":"tj")
   *         .end(callback)
   *       
   *       // auto json
   *       request.post('/user')
   *         .send( name: 'tj' )
   *         .end(callback)
   *       
   *       // manual x-www-form-urlencoded
   *       request.post('/user')
   *         .type('form')
   *         .send('name=tj')
   *         .end(callback)
   *       
   *       // auto x-www-form-urlencoded
   *       request.post('/user')
   *         .type('form')
   *         .send( name: 'tj' )
   *         .end(callback)
   *
   * @param String|Object data
   * @return Request for chaining
   * @api public
   */

【讨论】:

谢谢愉快!文档似乎有点落后于源代码 - 我确实打开它们进行检查,但显然错过了这一点。 这个答案已经过时了。您不能将sendget 一起使用:github.com/visionmedia/superagent/issues/606【参考方案2】:

以上答案在最新版本的 SuperAgent (0.18.0) 中对我不起作用。我不得不改用 query 函数 (http://visionmedia.github.io/superagent/#query-strings)。

request.get("/search").query( search: 'query' ).end(callback);

【讨论】:

以上是关于使用 SuperAgent 构造查询字符串的当前机制是啥?的主要内容,如果未能解决你的问题,请参考以下文章

可用于nodejs的SuperAgent(ajax API)

[转] SuperAgent使用文档

superagent模块api阅读

SuperAgent使用简介

SuperAgent使用简介

node egg.js使用superagent做文件转发