标签: superagent

如何用superagent发送文件

所以大约一个月前我问了一个关于superagent和发送文件的问题,但根本没有回复.我仍然想知道如何做到这一点,因为我喜欢使用superagent.

我可以使用普通的ajax发送文件:

var fd = new FormData();
        fd.append( 'file', this.refs.File.getDOMNode().files[0] );

        $.ajax({
            url: 'http://localhost:8080/files',
            data: fd,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function(data){
                console.log(data)
            }
        });
Run Code Online (Sandbox Code Playgroud)

但是当我在superagent中尝试同样的事情时,没有任何作用:

var fd = new FormData();
fd.append( 'file', this.refs.File.getDOMNode().files[0] );

Request.post('http://localhost:8080/files')
    .set('Content-Type', false)
    .set('Process-Data', false)
    .attach('file', fd, 'file')
    .end((err, res) => {
        console.log(err);
        console.log(res);
    })
Run Code Online (Sandbox Code Playgroud)

任何人,请告诉我发生了什么事.

ajax multipartform-data form-data superagent

3
推荐指数
2
解决办法
1万
查看次数

GatsbyJS和Superagent:WebpackError:require不是函数

我正在尝试使用gatsbyjs将我的react应用程序构建到静态html页面中。我刚刚尝试了“ gatsby build”,它经历了所有的事情,直到它想要创建静态页面,然后我得到:

error Building static HTML for pages failed

See our docs page on debugging HTML builds for help


  1 | if (global.GENTLY) require = GENTLY.hijack(require);   2 |
> 3 | var crypto = require('crypto');
    | ^   4 | var fs = require('fs');   5 | var util = require('util'),   6 |     path = require('path'),


  WebpackError: require is not a function

  - incoming_form.js:3 Object.map../file
    ~/formidable/lib/incoming_form.js:3:1

  - index.js:1 Object.<anonymous>
    ~/formidable/lib/index.js:1:1

  - index.js:8 Object.<anonymous>
    ~/superagent/lib/node/index.js:8:1

  - contact.js:3 Object.<anonymous>
    src/pages/contact.js:3:1

  - sync-requires.js:8 Object.exports.__esModule …
Run Code Online (Sandbox Code Playgroud)

javascript superagent reactjs webpack gatsby

3
推荐指数
1
解决办法
475
查看次数

Axios库和SuperAgent库有什么区别?

我正在学习JavaScript,并且可以看到在多个大型项目中,SuperAgent用于HTTP请求。我将Axios用于学习目的,但想知道是什么使SuperAgent与Axios不同?

javascript superagent axios

3
推荐指数
2
解决办法
1590
查看次数

与Superagent保持联系

我正在运行一个node.js服务器A,它使用superagent向另一台服务器B发出HTTP请求.

我调查了服务器B上的请求,看到了标题connection正在close和httpVersion 1.1:

var http = require('http');
var request = require('superagent');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write('req.httpVersion seen on server:' + req.httpVersion);
  res.write('\nreq.headers.connection seen on server:' + req.headers.connection);
  res.end();
}).listen(1337, '0.0.0.0');

request
  .get('localhost:1337/helloword')
  .end(function (err, res) {
    console.log(res.text);
  });
Run Code Online (Sandbox Code Playgroud)

这导致:

req.httpVersion seen on server:1.1
req.headers.connection seen on server:close
Run Code Online (Sandbox Code Playgroud)

但是,如果我从浏览器访问同一台服务器,我得到:

req.httpVersion seen on server:1.1
req.headers.connection seen on server:keep-alive
Run Code Online (Sandbox Code Playgroud)

http://tools.ietf.org/html/rfc2616#page-172我了解到这keep-alive是HTTP 1.1的默认值,除非另有声明Connection: close.

所以,我的问题是:

  • 为什么Superagent/Node.js显式设置请求不使用keep-alive/persistent连接?
  • 如何强制Superagent/Node.js使用保持连接?
  • 如何进一步影响确切的行为(保持打开的连接数,超时数等)?

http keep-alive node.js superagent

2
推荐指数
1
解决办法
6073
查看次数

无法读取未定义的属性'parent' - Node.js

我试图利用superagent和cheerio从kijiji抓取数据进行学习,而我收到了"无法读取未定义的属性'父级'的错误".(我试过craigslist很好).它发生在我得到正确的结果"对象"之后.cheerio似乎有些不对劲.有没有人对此有任何想法?提前感谢您的帮助.

[ERROR] 17:30:24 TypeError
TypeError: Cannot read property 'parent' of undefined
    at Function.exports.update (C:\Users\zhi_xie\nodejs\neomovie\node_modules\ch
eerio\lib\parse.js:55:25)
    at module.exports (C:\Users\zhi_xie\nodejs\neomovie\node_modules\cheerio\lib
\parse.js:17:11)
    at Function.exports.load (C:\Users\zhi_xie\nodejs\neomovie\node_modules\chee
rio\lib\static.js:19:14)
    at C:\Users\zhi_xie\nodejs\neomovie\routes\crawlerusers.js:35:27
    at Request.callback (C:\Users\zhi_xie\nodejs\neomovie\node_modules\superagen
t\lib\node\index.js:746:30)
    at Request.<anonymous> (C:\Users\zhi_xie\nodejs\neomovie\node_modules\supera
gent\lib\node\index.js:135:10)
    at Request.emit (events.js:95:17)
    at ClientRequest.<anonymous> (C:\Users\zhi_xie\nodejs\neomovie\node_modules\
superagent\lib\node\index.js:921:12)
    at ClientRequest.emit (events.js:95:17)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (http.js:1692:21)
Run Code Online (Sandbox Code Playgroud)

这是代码:

  var superagent = require('superagent');
  var cheerio = require('cheerio');
  var url = require('url');
  var kijijiUrl = 'http://www.kijiji.ca/b-immobilier/ville-de-montreal/c34l1700281?ad=wanted';

  superagent.get(kijijiUrl).end(function (err, res) {
    if (err) {
      return console.error(err);
    }
    var topicUrls = [];
    var …
Run Code Online (Sandbox Code Playgroud)

javascript node.js superagent cheerio

2
推荐指数
1
解决办法
1万
查看次数

使用Superagent和Express 4接收POST请求数据

快递-v:4.13.3

Superagent -v:1.4

函数从我的应用程序的前端发送POST请求:

search: () => {
    request.post('/api/search')
      .set('Content-Type', 'application/json')
      .send({hello: 'hello w'})
      .end((err, response) => {
        if (err) return console.error(err);

        serveractions.receiveTest(response);
      });
  }
Run Code Online (Sandbox Code Playgroud)

我的快递路由器文件:

var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');

router.use(bodyParser.urlencoded({extended: false}));

router.post('/api/search', (req, res, next) => {
  console.log(req.body);
  res.json({test: 'post received'});
});

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

路由器成功发送和接收请求,但即使我正在.send({hello: 'hello w'})使用Superagent ,req.body仍然是空的.为了正确发送json对象并在路由器中接收它,我需要更改什么?

post router node.js express superagent

2
推荐指数
1
解决办法
4666
查看次数

使用superagent和React从API响应中获取setState

尝试更改组件的状态时出错.

未捕获的TypeError:无法读取未定义的属性"setState"

constructor(props){
    super(props);

    this.state={
        r:'',
        message:''
    };
    this.setStateMessage = this.setStateMessage.bind(this);
}
setStateMessage (e){
    e.preventDefault();
    var test = this.state.message;

    request
      .post('http://127.0.0.1:5000/api/db')
      .send({message: this.state.message})
      .accept('application/json')
      .withCredentials()
      .end(function(err, res){
        if(err)
            throw err;
        this.setState({ r: res.body.message });
      });
}

render() {
    return (
        <div>
            <div className='response'>
                {this.state.r}
            </div>
            //form with input
        </div>
    )}
Run Code Online (Sandbox Code Playgroud)

superagent reactjs

2
推荐指数
1
解决办法
3158
查看次数

使异步/等待与Superagent一起工作

我在这里的语法中缺少某些内容,但不确定是什么:

我正在努力解决这个问题。但是我明白了expected undefined to equal 'pXVCJ9.eyJpYXQ'

Test.js

describe('User API', () => {
    let email, password, requestBody

    beforeEach(() => {
      email = 'someperson@gmail.com'
      password = 'password'
      requestBody = {
        session: '05833a20-4035',
        token: 'pXVCJ9.eyJpYXQ' }

      nock('https://someurl/')
        .get('users/sessions')
        .reply(200, requestBody)
    })

    it('returns user session for login', async () => {
        const data = await UserApi.login(email, password)

        expect(data.token).to.equal(requestBody.token)
        expect(data.session).to.equal(requestBody.session)
    })
})
Run Code Online (Sandbox Code Playgroud)

UserApi.js

import request from 'superagent'

export const endpoint = 'https://someurl/'

const login = (email, password) => async () => {
  try { …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous async-await superagent ecmascript-6

2
推荐指数
1
解决办法
3352
查看次数

带有“超级代理”模块的 PUT

阅读Superagent文档,没有区分 POST 和 PUT 请求:

  request.post('/user')
    .set('Content-Type', 'application/json')
    .send('{"name":"tj","pet":"tobi"}')
    .end(callback)
Run Code Online (Sandbox Code Playgroud)

如何使用这个包做 PUT 请求?

put node.js superagent

0
推荐指数
1
解决办法
2827
查看次数