koa-router,路由分离

蒋弘致
2023-12-01

Koa-router

先是app.js的代码

// 导入koa,和koa 1.x不同,在koa2中,我们导入的是一个class,因此用大写的Koa表示:
const Koa = require('koa');
// 创建一个Koa对象表示web app本身:
const app = new Koa();
// 引入路由对象
const router= require('./controller/router');
// const router = new Router()
// 处理跨域
const cors = require('koa2-cors');
// 解决跨域问题
app.use(cors({
    option: ['http://localhost:9528/playlist/list'], //允许当前地址访问
    credentials: true // 证书
}));
// 将路由对象注册到app对象上面去
// 将router注册到app对象上面。
app.use(router.routes())
    .use(router.allowedMethods()) //处理status为空或者404情况的404情况的

// 在端口3000监听:
app.listen(3000);
console.log('app started at port 3000...');

再是router.js文件中的代码

const router = require('koa-router')()

const getAccessToken = require('../utils/getAccessToken');

const ENV = 'hello-gg73o'

const rp = require('request-promise')

router.get('/list', async (ctx, next) => {
    // ctx.body = '歌单列表'
    // 查询歌单列表
    const ACCESS_TOKEN = await getAccessToken()
    const url = `https://api.weixin.qq.com/tcb/invokecloudfunction?access_token=${ACCESS_TOKEN}&env=${ENV}&name=music`

    var options = {
        method: 'POST',
        uri: url,
        body: {
            $url: 'playlist',
            start: 0,
            count: 50
        },
        json: true // Automatically stringifies the body to JSON
    };

    const data = await rp(options)
        .then(res => {
            // console.log(res);
            return JSON.parse(res.resp_data).data
        })
        .catch(err => {
            console.log(err);
        });
    ctx.body = {
        data,
        code: 20000
    }
})

module.exports = router
 类似资料: