【发布时间】:2020-05-05 16:51:24
【问题描述】:
我正在使用带有 nodejs 的 Typescript。我有 callback function,当我控制台时,我正在将数据作为正文中的一个对象。我想在ctx.body 的数据键中传递数据。我可以将 object 推送到其他 variable 然后传递给 ctx.body 吗?
router.post('/api/send_otp', async (ctx: Koa.Context, next: () => Promise<any>) => {
var phone = ctx.request.body.phone;
if (!phone) {
ctx.body = {
message: "Please enter phone number",
};
} else {
var options = {
url: '',
method: 'POST',
auth: {
'user': '',
'pass': ''
},
};
const callback = function(error, response, body) {
if (response) {
console.log(body); // Getting data here
}else{
console.log('error',error);
}
};
request(options,callback);
ctx.body = {
data: body, //I want data here
}
});
【问题讨论】:
-
@Lux 我尝试了一些解决方案,但对我不起作用。
-
您需要将
request转换为promise 风格的函数。然后你可以await它。 (当你使用 koa 时,你应该在一个async函数中。对于较旧的 koa 版本yield它) -
@Lux 你能编辑我的问题吗?所以我可以很容易地理解如何做到这一点。
-
你能贴出包装
koa的代码吗?
标签: javascript node.js koa ctx