KOA2 + node + ejs错误:发送后无法设置标题

使用kOA2 +节点js + ajax抓取网页数据并在首页显示结果信息:

query.js

const superagent = require('superagent'); const charset = require('superagent-charset'); const cheerio = require('cheerio'); charset(superagent); function Rate(from, to, queryNumber) { this.from = from; this.to = to; this.queryNumber = queryNumber; } module.exports = Rate; Rate.query = function query(rate, callback) { let URL = 'http://qq.ip138.com/hl.asp?from=' + rate.from + '&to=' + rate.to + '&q=' + rate.queryNumber; superagent.get(URL) .charset('gbk') .end((err, sres)=> { if (err) { return next(err); } var $ = cheerio.load(sres.text); var queryResult = []; queryResult[0] = $(".rate td").eq(4).text(); queryResult[1] = $(".rate td").eq(5).text(); callback(null, queryResult); }) }; 

index.js

 const index = require('koa-router')(); const Rate = require('../models/query'); index.get('/s*', async (ctx, next) => { let rate = new Rate(ctx.query.from, ctx.query.to, ctx.query.queryNumber); await Rate.query(rate, (err, queryResult) => { if (err) { return next(err); } else { return ctx.render('query', { title: '查询结果', rate: queryResult[0], amount: queryResult[1] }); return next(); } }); 

当访问“/ s *”页面时,出现:(节点:808)UnhandledPromiseRejectionWarning:未处理的仇恨拒绝(拒绝id:1):错误:发送后无法设置标头。 错误,并且页面不能跳转。

试了很多方法,但还是不知道提前回到哪里。

现在已知,因为ctx结束后,还要调用render来写入数据。 但那不是在哪里改变。 请帮助我。

请更新

 const index = require('koa-router')(); const Rate = require('../models/query'); index.get('/s*', async (ctx, next) => { let rate = new Rate(ctx.query.from, ctx.query.to, ctx.query.queryNumber); await Rate.query(rate, (err, queryResult) => { if (err) { return next(err); } else { return ctx.render('query', { title: '查询结果', rate: queryResult[0], amount: queryResult[1] }); return next(); } }); 

 const index = require('koa-router')(); const Rate = require('../models/query'); index.get('/s*', async (ctx, next) => { let rate = new Rate(ctx.query.from, ctx.query.to, ctx.query.queryNumber); await Rate.query(rate, (err, queryResult) => { if (err) { return next(err); } else { return ctx.render('query', { title: '查询结果', rate: queryResult[0], amount: queryResult[1] }); } });