gpt4 book ai didi

第二次运行时 Payload() 的 Node.js 'Object is not a function'

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:06 25 4
gpt4 key购买 nike

此代码是用户输入用户名/密码时获得 token 的地方。我知道,如果他们输入错误的信息并收到 401,他们会再次收到提示,使用 .catch(function(err) { callApiToken(); }) 重试。但是,在第二遍时,我将得到 payload(user, pass) 函数的 Unhandled RFC 类型错误:对象不是函数。为什么是这样?

function payload(user, pass) {
return payload = {
"thePassword": {
"username": user,
"password": pass
}
}
}

function postAsync(url, payload) {
return new Promise(function(resolve, reject) {
rest.postJson(url, payload)
.on('fail', function(data, response) {
httpFail(data, response, reject);
reject(response.statusCode);
})
.on('error', function(err, response) {
conError(err, response);
reject(err);
})
.on('success', function(data, response) {
writeToFile(data, response);
resolve();
});
});
}



function getPassword(user) {
return readAsync({prompt: "Password: ", silent: true, replace: "*" })
.then(function(pass) {
//PAYLOAD() IS WHERE THE ERROR IS AT SECOND TIME
//BEING CALLED
return postAsync(URL, payload(user[0], pass[0]));
});
}

如何称呼:

callApiToken()
.then(function() { refreshToken(); })
.catch(function(err) {
callApiToken();
});

最佳答案

您的问题是有效负载函数本身,特别是这部分:

return payload = {
"thePassword": {
"username": user,
"password": pass
}
}

它的作用是将有效负载设置为“thePassword”对象,以便在第一次调用后,它不再是一个函数,而是一个对象。

这样做:

function payload(user, pass) {
return {
"thePassword": {
"username": user,
"password": pass
}
}
}

关于第二次运行时 Payload() 的 Node.js 'Object is not a function',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28975026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com