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