const Koa = require('koa'); // 引入koa
const router = require('koa-router')(); // 引入koa-router 並實例化
const app = new Koa();
router.get('/',async (ctx)=>{ ctx.body='首頁' }) router.get('/news',async (ctx)=>{ ctx.body='新聞列表頁面' })
router.get('/details',async (ctx)=>{
ctx.body='新聞詳情頁面';
// 從ctx中讀取get傳值 http://localhost:3000/details?id=130&name=huawei
console.log(ctx.query); // { id: '130', name: 'huawei' }
console.log(ctx.querystring) // id=130&name=huawei
// 方法二 request
console.log(ctx.request.url) // /details?id=130&name=huawei
console.log(ctx.url)// /details?id=130&name=huawei
// 方法三
console.log(ctx.request.query) // { id: '130', name: 'huawei' }
console.log(ctx.request.query.id) // 130
console.log(ctx.request.querystring) // id=130&name=huawei
})
// 動態路由 -----------------------------------------------------------------------
router.get('/goods/:uid',async (ctx)=>{
// 獲取動態路由傳參
console.log('獲取動態路由傳參 : ',ctx.params);
// http://localhost:3000/details/iphone
if(ctx.params.uid === 'iphone'){
ctx.body = 'iphone 產品'
}else if(ctx.params.uid === 'oppo'){
// http://localhost:3000/details/oppo
ctx.body = 'oppo 產品'
}else{
// http://localhost:3000/details/some
ctx.body = 'other 產品'
}
})
app.use(router.routes());// 啓動路由
app.use(router.allowedMethods()) // 能夠配置也能夠配置,建議配置
// 監聽接口
app.listen('3000',(err)=>{
if(err){
console.log('服仵器啓動失敗')
}else{
console.log('服務器啓動成功')
}
})