在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ koa2 服務(wù)端渲染web開發(fā),怎么處理瀏覽器事件觸發(fā)的數(shù)據(jù)交互?

koa2 服務(wù)端渲染web開發(fā),怎么處理瀏覽器事件觸發(fā)的數(shù)據(jù)交互?

一般怎么處理,我能想到的是在node服務(wù)端做一些接口,如下圖:

routes/news.js

const router = require('koa-router')({
    prefix: '/news'
})
const config = require('../config')
const controllers = require('../controllers')

router.get('/', async (ctx, next) => {
    const { companyNews, industryNews } = await controllers.news.getList(ctx, next)

    await ctx.render('news', {
        header: {
            title: '新聞中心',
            javascript: config.javascript.concat('/js/jqpaginator.min.js', '/js/frontNewsCenter.js'),
            style: config.style.concat('/css/frontNewsCenter.css'),
        },
        newBanner: {
            imgSrc: '/images/news/banner.png',
        },
        tabNav: {
            items: [{
                cn: '公司新聞',
                en: 'Company news',
            }, {
                cn: '行業(yè)咨詢',
                en: 'Industry information',
            }],
        },
        companyNews: companyNews,
        industryNews: industryNews,
    })
})

router.get('/getList', controllers.news.getList)

module.exports = router

controllers/news.js

const { getCompanyNewsList, getIndustryInfoList } = require('../config').service
const axios = require('axios')

async function getList (ctx, next) {

    const page = ctx.query.page || '1'    // page
    const size = ctx.query.size || '10'   // size
    const role = ctx.query.role || 'news' // role

    let code = -1
    let data = []
    let companyNews = []
    let industryNews = []

    if (role === 'news') {
        await axios.get(getCompanyNewsList, {
                params: {
                    page: page,
                    size: size
                }
            })
            .then(res => {
                if (res.data.code === '2000') {
                    code = 0
                    data = res.data.obj
                    companyNews = res.data.obj.records
                }
            })
    }

    if (role === 'industry') {
        await axios.get(getIndustryInfoList, {
                params: {
                    page: page,
                    size: size
                }
            })
            .then(res => {
                if (res.data.code === '2000') {
                    code = 0
                    data = res.data.obj
                    industryNews = res.data.obj.records
                }
            })

    }

    ctx.state.code = code
    ctx.state.data = data

    return {
        companyNews,
        industryNews,
    }
}

module.exports = {
    getList
}
回答
編輯回答
做不到

restful服務(wù), ctx.body等于ctx.response.body

router.get('/', async(ctx) => {
    ctx.body = {hello: 'world'}
})
2018年7月9日 17:56