這是代碼,做轉發用的,但是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
提交
取消