想要实现的的业务是先渲染页面,然后通过ctx.body往页面中加内容核心代码如下await ctx.render('crawler', { title: '爬取页面', content: `<h2>开始爬取</h2> <h4>创建地址池成功!</h4>`})const linkPool = createLinkPool()for (let i = 0; i < linkPool.length; ++i) { const html = await requestPage(linkPool[i]) let builds = await dataHandler(html) let arr = []; const sql = 'insert into buildinfo(id,name,area,address,average,price,description,type) values ?' //let rows = await query(sql, [builds]) try { let rows = await query(sql, [builds]) ctx.body += `爬取地址${linkPool[i]}的${rows.affectedRows}条数据已经入库` } catch (error) { ctx.body += `${linkPool[i]}的爬取写入操作失败了!失败原因:${error}` }}现在的问题是只有当所有写数据库的操作结束,页面才会展示,否则一直在读小圆圈,请问怎么才能达到我所预期的效果我将渲染页面之后的操作放到一个中间件中了,代码如下router.get('/crawler/', async (ctx, next) => { await ctx.render('crawler', { title: '爬取页面', content: `<h2>开始爬取</h2> <h4>创建地址池成功!</h4>` }) next()})页面渲染之后也确实执行了入库操作的逻辑,但是ctx.body += `爬取地址${linkPool[i]}的${rows.affectedRows}条数据已经入库`这个操作并没有往页面上写内容,是不是我的用法不对,请问ctx.body是干什么的?
添加回答
举报
0/150
提交
取消