我正在尝试在后端服务文件中连接到反复的API,然后返回作为后端控制器的新承诺。由于某种原因,我的代码行不通。
我不断收到此错误消息:
0 |帐户 - |TypeError [ERR_INVALID_ARG_TYPE]:第一个参数必须是类型字符串,缓冲区,ArrayBuffer,Array或类似数组的对象之一。收到的类型不确定
这是我的代码,API配置和其他设置效果很好。请记住,这是项目代码的一部分。
service.js:
const Recurly = require('recurly-js');
function TeamService({}) {
this.updateBillingInfo = (team_id, body) => {
const recurly = new Recurly(
{
API_KEY: config.recurly.API_KEY,
SUBDOMIAN: config.recurly.SUBDOMIAN,
ENVIRONMENT: config.recurly.ENVIRONMENT,
DEBUG: config.recurly.DEBUG,
API_VERSION: config.recurly.API_VERSION
}
);
return new Promise((resolve, reject) => {
let res;
let err;
recurly.billingInfo.update(team_id, { token_id: body.id }, function (errResponse, response) {
if (errResponse) {
err = errResponse.data.error;
}
if(response){
res = response;
}
});
resolve(res);
reject(err);
});
};
}
}
Controller.js:
function Controller({ teamService, httpStatus, }) {
this.updateBillingInfo = (req, res) => {
const {
team_id,
body
} = req;
teamService.updateBillingInfo(team_id, body).then(function(result){
console.log(result);
return httpStatus.twoHundredSuccess(res, {result});
}).catch(function(err){
console.log(err);
httpStatus.fiveHundredError(res, err);
});
}
}
我希望服务工作中的功能从API获得信息。返回作为控制器文件的新承诺。但是它无法使用服务。我对承诺不是很好。请让我知道我做错了哪一部分。
您的决心和拒绝应在异步函数的回调中:
recurly.billingInfo.update(team_id, { token_id: body.id }, function(
errResponse,
response
) {
if (errResponse) {
reject(errResponse.data.error);
}else{
resolve(response);
}
});