koa如何返回接口数据
发布于 7 年前 作者 zhoujian917 10632 次浏览 来自 问答

前端请求接口,koa转发请求到后台,koa如何将接口数据返回给前端???? server.js如下: const Koa = require(‘koa’); const router = require(‘koa-router’)(); var ctrl = require(’./server/controller.js’); const app = new Koa(); app.use(require(‘kcors’)()); app.use(async (ctx, next) => { await next(); }); router.get(’/list’,ctrl.goods); controller.js如下: var request = require(‘superagent’); class indexController { static async goods(ctx, next) { request.get(“https://cnodejs.org/api/v1/topics”).then(function(res){ console.log(res.body); if(res.ok){ if(res.body.success){ ctx.body = res.body; } } }); } } module.exports = indexController; 执行后,可以console.log打印处结果,但是ctx.body不起作用,而且路由那报404,如果不用request请求接口,直接写个ctx.body=1,是可以访问的

4 回复

好歹也格式化一下代码吧

request请求是异步的,所以没有结果返回,你可以在request前加上await等待请求完成后再返回结果

var  request = require('superagent');
class indexController {
  static async goods(ctx, next) {
		var res = await request.get('https://cnodejs.org/api/v1/topics');
		if(res && res.ok && res.body.success){
			ctx.body = res.body;
		}
	}
}
module.exports = indexController;

我觉得还是格式化代码一下比较好。。

来自酷炫的 CNodeMD

回到顶部