TypeError:apickli.Apickli不是构造函数

时间:2018-04-24 06:23:05

标签: javascript node.js

获取错误:

  

TypeError:apickli.Apickli不是构造函数

当我尝试在方案的下一步中再次使用Sendpostrequest.js时。

从A.js我试图调用Sendpostrequest第一步它工作正常,但当我再次使用它时我收到错误

  

TypeError:apickli.Apickli不是构造函数。

代码:A.js

class Grouper(object):
    def _get_grouper(self, obj, validate=True):
        self._set_grouper(obj)
        self.grouper, exclusions, self.obj = _get_grouper(self.obj, [self.key],
                                                      axis=self.axis,
                                                      level=self.level,
                                                      sort=self.sort,
                                                      validate=validate)
        return self.binner, self.grouper, self.obj

Sendpostrequest.js

 Given(....
{
    Sendpostrequest(obj.domain, obj.requestheader, querystring.stringify(obj.requestbody)).then
    {
    } //works fine
});

When(....
{
    Sendpostrequest(obj.domain, obj.requestheader, querystring.stringify(obj.requestbody)).then
    {
    } //this one giving error
}); 

1 个答案:

答案 0 :(得分:0)

apickli出现问题,您在第一次请求中省略了apickli变量,您可能想尝试以下内容

'use strict';
const querystring = require('querystring');
const apickli = require('apickli');

const Sendpostrequest = (requesturl, header, body) => {
    this.apickli = new apickli.Apickli('https', requesturl);
    for (let key in header) {
        this.apickli.addRequestHeader(key, header[key]);
    }
    console.log("Header -------->", header);
    console.log("Url------------->", requesturl);
    if (body) {
        this.apickli.setRequestBody(body);
    }
    return new Promise((resolve, reject) => {
        this.apickli.post('', function (error, response) {
            if (error) {
                return reject(error);
            }
            return resolve(response);
        });
    })
}

或使用其他变量名称,例如const apickliObj而不是this.apickli,你必须避免省略变量,但如果你仍然想省略那么包括内部函数,如下所示

'use strict';
const querystring = require('querystring');

const Sendpostrequest = (requesturl, header, body) => {
    let apickli = require('apickli');
    apickli = new apickli.Apickli('https', requesturl);
    for (let key in header) {
        apickli.addRequestHeader(key, header[key]);
    }
    console.log("Header -------->", header);
    console.log("Url------------->", requesturl);
    if (body) {
        apickli.setRequestBody(body);
    }
    return new Promise((resolve, reject) => {
        apickli.post('', function (error, response) {
            if (error) {
                return reject(error);
            }
            return resolve(response);
        });
    })
}

希望这有帮助!