領導要求要是用node作為中間層,去請求后端的api,node層使用了koa2(2.5.1)框架,用來向瀏覽器端提供接口,但在后臺沒開發完成的時候作為測試返回一些死數據就正常,但是當接入了后端api的時候就返回不了了,瀏覽器端http狀態碼404。硬著頭皮使用node作為中間層,望大神輕噴。代碼如下// node版本8.11.2// router使用koa-router(7.1.1)// 有使用 koa2-cors包作為跨域的處理// node端http請求使用request(2.87.0)router.post('/login', async (ctx, next) => { console.log('方式是', ctx.request) // 有數據 console.log('數據是', ctx.request.body) // 有數據 console.log('賬號', ctx.request.body.name, '密碼', ctx.request.body.password) // 有數據 ctx.body = { // 最開始為了測試,只要點用了這個login接口就會返回這個數據是正常的,后面會注釋 code: 200, msg: 'success' }/** 但是當我在這個里面接入了request模塊之后就出問題了* 代碼如下*/ request({ url: 'http://xxx.55.41.71:9090/tokens', method: "POST", json: true, // 照搬網上一個例子,這個true是代表什么意思? headers: { "content-type": "application/json", }, body: JSON.stringify({ 'userName': ctx.request.body.name, 'password': ctx.request.body.password }) }, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // 這邊在控制臺上是可以拿到這個body的 ctx.body = body // 這邊就是一直返回不出去,瀏覽器一直報錯 } })})如圖如果當我瀏覽器調用node層需要,node層的接口需要訪問三個接口,分別為A,B,C 只有當A,B C三個接口都拿到數據了才能返給瀏覽器(假設沒有依賴關系),有沒有類似于all的方法?
node 作為中間層調后臺api,拿到結果之后如何返回給瀏覽器?
冉冉說
2019-03-05 13:15:08