Node.js 不从自定义帮助器返回值
我的node.js助手有问题。我的助手向payu API发送post请求,API返回我需要的访问令牌。如果收到访问令牌,那么我需要返回他 我的代码:Node.js 不从自定义帮助器返回值,node.js,Node.js,我的node.js助手有问题。我的助手向payu API发送post请求,API返回我需要的访问令牌。如果收到访问令牌,那么我需要返回他 我的代码: module.exports = { createPaymentToken: async () => { const response = await request({ method: 'POST', json: false,
module.exports = {
createPaymentToken: async () => {
const response = await request({
method: 'POST',
json: false,
url: payuAuthUrl,
form: {
'grant_type': 'client_credentials',
'client_id': payuMerchantID,
'client_secret': payuSecret,
}
},
function (error, response, body) {
if (response) {
const result = (JSON.parse(body));
const token = result.access_token;
return token;
}
}
);
},
当我在返回令牌之前添加console.log(令牌)时,我会看到我的访问令牌。问题是当我想将此令牌传递给控制器时,即它到达我时未定义
我的控制器
testPayment: async (req, res) => {
var result = await payuHelper.createPaymentToken();
res.send({
result
});
},
我不知道我做错了什么。您的return语句放在callback中,因此
createPaymentToken
函数不返回任何内容,只需修复代码,如下面的示例所示:
module.exports = {
createPaymentToken: () => {
return new Promise((resolve, reject) => {
request({
method: 'POST',
json: false,
url: payuAuthUrl,
form: {
'grant_type': 'client_credentials',
'client_id': payuMerchantID,
'client_secret': payuSecret,
}
},
function (error, response, body) {
if (error) {
return reject(error)
}
if (response) {
const result = (JSON.parse(body));
const token = result.access_token;
return resolve(token);
}
}
);
})
},
}
您的return语句放在回调函数中,因此
createPaymentToken
函数不会返回任何内容,只需修复代码,如下面的示例所示:
module.exports = {
createPaymentToken: () => {
return new Promise((resolve, reject) => {
request({
method: 'POST',
json: false,
url: payuAuthUrl,
form: {
'grant_type': 'client_credentials',
'client_id': payuMerchantID,
'client_secret': payuSecret,
}
},
function (error, response, body) {
if (error) {
return reject(error)
}
if (response) {
const result = (JSON.parse(body));
const token = result.access_token;
return resolve(token);
}
}
);
})
},
}
createPaymentToken函数不返回任何内容。return语句将值返回到其调用者的作用域,其调用者是请求函数。
createPaymentToken
函数不返回任何内容。return语句将值返回到它的调用者的作用域,它的调用者是请求函数。我用类似的方法做了这件事,但是有人问我Promis{pending}:)非常感谢你的帮助,当然它工作得很好greatI用类似的方法做了这件事,但是有人问我Promis{pending}:)非常感谢你的帮助,当然它工作得很好