这是代码,做转发用的,但是ctx.response.body会前端的是404router.get('/getData', async (ctx, next) => { let opts = Object.keys(ctx.query).reduce((pre, item, index) => { return pre += `${item}=${encodeURIComponent(ctx.query[item])}&`
}, '?')
// const getData = await request.get(`https://searchapi.hc360.com/getmmtlast.cgi${opts}`)
// console.log('getData', getData.query);
request({ url: `https://searchapi.hc360.com/getmmtlast.cgi${opts}`, method: 'GET', encoding: null
}, function(err, res, data) { if (!err && res.statusCode == 200) { console.log('data', Iconv.decode(data, 'gbk'));
ctx.response.body = Iconv.decode(data, 'gbk')
} else ctx.response.body = err;
}) await next();
})
1 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
因为request是一个异步的过程,请求 /getData
时并没有执行到 ctx.response.body ,这里await request的结果赋给ctx
添加回答
举报
0/150
提交
取消