Javascript 如何从请求迁移到axios

Javascript 如何从请求迁移到axios,javascript,node.js,request,axios,cryptocurrency,Javascript,Node.js,Request,Axios,Cryptocurrency,我正在使用 [https://github.com/huobiapi/REST-Node.js-demo][1] 对于我与霍比加密币交易所的连接,但我有一些错误,如: (node:29550) Warning: a promise was rejected with a non-error: [object Undefined] 及 它有一个过时的模块 “请求”可以更改为axios模块,以便显示我的错误 const http = require('http'); const request

我正在使用 [https://github.com/huobiapi/REST-Node.js-demo][1] 对于我与霍比加密币交易所的连接,但我有一些错误,如:

 (node:29550) Warning: a promise was rejected with a non-error: [object Undefined]

它有一个过时的模块 “请求”可以更改为axios模块,以便显示我的错误

const http = require('http');
const request = require('request');
const moment = require('moment');
const logger = console;

var default_post_headers = {
    'content-type': 'application/json;charset=utf-8',
}

var agentOptions = {
    keepAlive: true,
    maxSockets: 256,
}

exports.get = function(url, options) {
   return new Promise((resolve, reject) => {
        options = options || {};
        var httpOptions = {
            url: url,
            method: 'get',
            timeout: options.timeout || 3000,
            headers: options.headers || default_post_headers,
            proxy: options.proxy || '',
            agentOptions: agentOptions
        }
        request.get(httpOptions, function(err, res, body) {
            if (err) {
                reject(err);
            } else {
                if (res.statusCode == 200) {
                    resolve(body);
                } else {
                    reject(res.statusCode);
                }
            }
        }).on('error', logger.error);
    });
}

exports.post = function(url, postdata, options) {
    return new Promise((resolve, reject) => {
        options = options || {};
        var httpOptions = {
            url: url,
            body: JSON.stringify(postdata),
            method: 'post',
            timeout: options.timeout || 3000,
            headers: options.headers || default_post_headers,
            proxy: options.proxy || '',
            agentOptions: agentOptions
        };
        request(httpOptions, function(err, res, body) {
            if (err) {
                reject(err);
            } else {
                if (res.statusCode == 200) {
                    resolve(body);
                } else {
                    reject(res.statusCode);
                }
            }
        }).on('error', logger.error);
    });
};

exports.form_post = function(url, postdata, options) {
    return new Promise((resolve, reject) => {
        options = options || {};
        var httpOptions = {
            url: url,
            form: postdata,
            method: 'post',
            timeout: options.timeout || 3000,
            headers: options.headers || default_post_headers,
            proxy: options.proxy || '',
            agentOptions: agentOptions
        };
        request(httpOptions, function(err, res, body) {
            if (err) {
                reject(err);
            } else {
                if (res.statusCode == 200) {
                    resolve(body);
                } else {
                    reject(res.statusCode);
                }
            }
        }).on('error', logger.error);
    });
};
到目前为止,我试过:

    return new Promise((resolve, reject) => {
        options = options || {};
        var httpOptions = {
            url: url,
            method: 'get',
            timeout: options.timeout || 3000,
            headers: options.headers || default_post_headers,
            proxy: options.proxy || '',
            agentOptions: agentOptions
        }
        axios.get(httpOptions, function(err, res, body) {
            if (err) {
                reject(err);
            } else {
                if (res.statusCode == 200) {
                    resolve(body);
                } else {
                    reject(res.statusCode);
                }
            }
        }).on('error', logger.error);
    });
} 
这样的解决方案,但似乎他们不完全一样,所以不工作

 [1]: https://github.com/huobiapi/REST-Node.js-demo

我刚刚从模块中删除了bluebird,错误消失了。

您能与adios分享您的错误吗?上面列出的错误2个不同的错误第一个总是第二个有时Axios似乎以服务器的内部路径为目标,这是预期的吗?或者它不记录完整的url路径吗?
    return new Promise((resolve, reject) => {
        options = options || {};
        var httpOptions = {
            url: url,
            method: 'get',
            timeout: options.timeout || 3000,
            headers: options.headers || default_post_headers,
            proxy: options.proxy || '',
            agentOptions: agentOptions
        }
        axios.get(httpOptions, function(err, res, body) {
            if (err) {
                reject(err);
            } else {
                if (res.statusCode == 200) {
                    resolve(body);
                } else {
                    reject(res.statusCode);
                }
            }
        }).on('error', logger.error);
    });
} 
 [1]: https://github.com/huobiapi/REST-Node.js-demo