領(lǐng)導(dǎo)要求要是用node作為中間層,去請(qǐng)求后端的api,node層使用了koa2(2.5.1)框架,用來(lái)向?yàn)g覽器端提供接口,但在后臺(tái)沒(méi)開(kāi)發(fā)完成的時(shí)候作為測(cè)試返回一些死數(shù)據(jù)就正常,但是當(dāng)接入了后端api的時(shí)候就返回不了了,瀏覽器端http狀態(tài)碼404。硬著頭皮使用node作為中間層,望大神輕噴。代碼如下// node版本8.11.2// router使用koa-router(7.1.1)// 有使用 koa2-cors包作為跨域的處理// node端http請(qǐng)求使用request(2.87.0)router.post('/login', async (ctx, next) => { console.log('方式是', ctx.request) // 有數(shù)據(jù) console.log('數(shù)據(jù)是', ctx.request.body) // 有數(shù)據(jù) console.log('賬號(hào)', ctx.request.body.name, '密碼', ctx.request.body.password) // 有數(shù)據(jù) ctx.body = { // 最開(kāi)始為了測(cè)試,只要點(diǎn)用了這個(gè)login接口就會(huì)返回這個(gè)數(shù)據(jù)是正常的,后面會(huì)注釋 code: 200, msg: 'success' }/** 但是當(dāng)我在這個(gè)里面接入了request模塊之后就出問(wèn)題了* 代碼如下*/ request({ url: 'http://xxx.55.41.71:9090/tokens', method: "POST", json: true, // 照搬網(wǎng)上一個(gè)例子,這個(gè)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) // 這邊在控制臺(tái)上是可以拿到這個(gè)body的 ctx.body = body // 這邊就是一直返回不出去,瀏覽器一直報(bào)錯(cuò) } })})如圖如果當(dāng)我瀏覽器調(diào)用node層需要,node層的接口需要訪問(wèn)三個(gè)接口,分別為A,B,C 只有當(dāng)A,B C三個(gè)接口都拿到數(shù)據(jù)了才能返給瀏覽器(假設(shè)沒(méi)有依賴(lài)關(guān)系),有沒(méi)有類(lèi)似于all的方法?
node 作為中間層調(diào)后臺(tái)api,拿到結(jié)果之后如何返回給瀏覽器?
冉冉說(shuō)
2019-03-05 13:15:08