2015-12-07 2 views
2

Я новичок и пытаюсь создать приложение на основе poloniex.js API get error-TypeError: curl.setopt не является функцией] set node-curl (not working) и node-libcurl (частично работает, но функция кажется некорректно выраженной), слегка запутанной между двумя завитушками). Узел-завиток устарел и, возможно, это проблема. Не можете ли вы сказать, что не так?TypeError: curl.setopt не является функцией]

'use strict'; 

    var autobahn = require('autobahn'), 
    crypto = require('crypto'), 
    async = require('async'), 
    https = require('https'), 
    nonce = require('nonce')(), 
    querystring = require('querystring'), 
    Curl = require('node-libcurl').Curl, 
    microtime = require('microtime'), 
    events = require('events'), 
    util = require('util'); 

    var Poloniex = function Poloniex() {}; 

    Poloniex._query_tradeApi = function (req, callback) { 
    var post_data, 
    hash = crypto.createHmac('sha512', "key-key-key"), 
    sign, 
    received, 
    headers; 

    nonce = (new Date()).getTime() * 1000; 
    post_data = querystring.stringify(req); 
    hash.update(post_data); 
    sign = hash.digest("hex"); 

    try { 
    headers = [ 'Key: ' + "SECRET-SECRET-SECRET", 'Sign: ' + sign ]; 

    var curl = new Curl(), 
    close = curl.close.bind(curl); 
    curl.setopt('URL', 'https://poloniex.com/tradingApi/'); 
    curl.setopt('POST', 1); 
    curl.setopt('POSTFIELDS', post_data); 
    curl.setopt('HTTPHEADER', headers); 

    received = ''; 

    curl.on('data', function (chunk) { 
     received += chunk; 
     return chunk.length; 
    }); 

    curl.on('header', function (chunk) { 
     return chunk.length; 
    }); 

    curl.on('error', curl.close.bind(curl),function (e) { 
     console.error('exchanges/poloniex', '_query_tradeApi', e, 
    req, e.stack); 
     callback(e, undefined); 
     curl.perform(); 
     curl.close(); 
    }); 

    curl.on('end', function() { 
     try { 

      var data = JSON.parse(received); 
      callback(undefined, data); 

     } catch (ex) { 
      console.error('exchanges/poloniex', '_query_tradeApi', 
    ex,  req, ex.stack); 
      callback(ex, received); 
     } 

     curl.close(); 
    }); 

    curl.perform(); 

    } catch (ee) { 
    console.error('exchanges/poloniex', '_query_tradeApi', ee, 
    req, ee.stack); 
    callback(ee, received); 
    } 
    }; 
+0

Как подсказка отменить завиток и использовать Node.js Модуль запроса https://github.com/request/request для получения или публикации данных. –

ответ

2

Необходимый синтаксис - curl.setOpt, а не curl.setopt.

+0

Да, спасибо .. Хотя не видел, что есть разница ( – Oleg999

+0

Вы получаете одно и то же сообщение об ошибке после его изменения? Если это так, это было бы странно и указывало бы, что у вас все еще есть неправильный синтаксис при вызове метода. – Gary

+0

Я имел в виду, что в спецификациях curl.setOpt видел, что это требует именно этого синтаксиса. Эта проблема исправлена, но, видимо, код слишком полон ошибок. Теперь я проверю – Oleg999

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