2016-01-25 3 views
1

Я хотел бы добавить заголовки в суперагентное обещание bluebird в моем проекте React, я столкнулся с суперагентными обещаниями (https://github.com/doron2402/superagent-promise-headers) и хотел бы использовать его.React Superagent-bluebird-обещание с заголовками

Глядя на их примере я запутался с этим синтаксисом ...

  var request = require('superagent-promise-headers')({ 
 
      headers: { 
 
       base: { 'content-service': 'Doron-Service' }, 
 
       get: { 'content-service-type': 'Doron-Service-GET' }, 
 
       post: { 'content-service': 'Doron-Service-POST' }, 
 
       del: { 'content-service': 'Doron-Service-DELETE' }, 
 
       put: { 'content-service': 'Doron-Service-PUT' } 
 
      } 
 
     });

Я не понимаю, что происходит, и я хотел бы использовать его в моей функции decryptImage.

Я использую mashape api, и мне нужно добавить заголовки. В своем примере:

// These code snippets use an open-source library. http://unirest.io/nodejs 
 
unirest.post("https://camfind.p.mashape.com/image_requests") 
 
.header("X-Mashape-Key", "KEYHERE") 
 
.field("focus[x]", "480") 
 
.field("focus[y]", "640") 
 
.field("image_request[altitude]", "27.912109375") 
 
.attach("image_request[image]", fs.createReadStream("monkey.jpg")) 
 
.field("image_request[language]", "en") 
 
.field("image_request[latitude]", "35.8714220766008") 
 
.field("image_request[locale]", "en_US") 
 
.field("image_request[longitude]", "14.3583203002251") 
 
.field("image_request[remote_image_url]", "http://upload.wikimedia.org/wikipedia/en/2/2d/Mashape_logo.png") 
 
.end(function (result) { 
 
    console.log(result.status, result.headers, result.body); 
 
});

My Code 
 
    
 
    import request from 'superagent-bluebird-promise' 
 
    
 
    // should I use 'superagent-promise-headers' instead? im confused here 
 
    
 
    var ImageStore = Reflux.createStore({ 
 
    
 
    .. 
 
    . 
 
    . 
 
     
 
     decryptImage(file) { 
 
      var reader = new FileReader(); 
 
      var info = {} 
 
     
 
      reader.onload = (output) => { 
 
       request.post("https://camfind.p.mashape.com/image_requests") 
 
       /// !!Here!! 
 
       /// !!confused here too 
 
       .header(
 
        { 
 
        "X-Mashape-Key": "xxxxxxxxxxxxx", 
 
        "Content-Type": "application/x-www-form-urlencoded", 
 
         "Accept": "application/json" 
 
        }) 
 
        .send("image_request[locale]=en_US") 
 
        .send("image_request[longitude]=14.3583203002251") 
 
        .send("image_request[image]=reader") 
 
        .then(function (result) { 
 
          console.log(result.status, result.headers, result.body); 
 
this.info = result 
 
        }, 
 
         function(error) { 
 
         console.log(error); 
 
        } 
 
        ); 
 
       } 
 
      
 
       reader.readAsDataURL(file); 
 
       return info 
 
       }, 
 
      
 
       onAddImage(file) { 
 
       var info = this.decryptImage(file); 
 
       }, 
 
     }); 
 
    
 
    TLDR: Can someone show me how to set up headers with superagent-bluebird-promise? so I can call a 3rd party API service

ответ

0

Я не использовал его, но похоже, что вы должны сделать это так.

var request = require('superagent-promise-headers')({ 
 
    headers: { 
 
     post: { 
 
      "X-Mashape-Key": "xxxxxxxxxxxxx", 
 
      "Content-Type": "application/x-www-form-urlencoded", 
 
      "Accept": "application/json" } 
 
    } 
 
});  
 
    // should I use 'superagent-promise-headers' instead? im confused here 
 
    
 
    var ImageStore = Reflux.createStore({ 
 
    
 
    .. 
 
    . 
 
    . 
 
     
 
     decryptImage(file) { 
 
      var reader = new FileReader(); 
 
      var info = {} 
 
     
 
      reader.onload = (output) => { 
 
       request.post("https://camfind.p.mashape.com/image_requests") 
 
       .send("image_request[locale]=en_US") 
 
       .send("image_request[longitude]=14.3583203002251") 
 
       .send("image_request[image]=reader") 
 
       .then(function (result) { 
 
        console.log(result.status, result.headers, result.body); 
 
this.info = result 
 
        }, 
 
         function(error) { 
 
         console.log(error); 
 
        } 
 
        ); 
 
       } 
 
      
 
       reader.readAsDataURL(file); 
 
       return info 
 
       }, 
 
      
 
       onAddImage(file) { 
 
       var info = this.decryptImage(file); 
 
       }, 
 
     });

+0

то, что этот код делает? требуют ('SuperAgent-обещание-заголовки') ({ заголовки: { сообщение: { "X-Mashape-Key": "XXXXXXXXXXXXX", "Content-Type": «применение/х-WWW-формы -urlencoded ", " Accept ":" application/json "} } }); Я никогда не видел этот синтаксис раньше, можете ли вы перевести его на ES6 для меня? – joe

+0

Это из их примера, поэтому я предполагаю, что так оно и работает. Вам не нужно переводить на es6, так как все это все равно переводится на обычные js. –

Смежные вопросы