版权声明:原创文章,未经博主同意,不得擅自转载! https://blog.csdn.net/qq_36718999/article/details/82317271
1.route(get,post,patch,delete)
//routes.js
const Route = use('Route')
Route.on('/').render('welcome')
// Route.get('/hello',({request})=>{
// return `'hello ~' ${request.input('name')}`
// })
// Route.get('/hello','HelloController.render')
// Route.get('/posts','PostController.index')
// Route.post('/posts', 'PostController.store')
// Route.get('/posts/create','PostController.create')
// Route.get('posts/:id','PostController.show')
//
// Route.patch('posts/:id','PostController.update')
//
// Route.delete('posts/:id?','PostController.destory')
//
//
//
// Route.get('/posts/:id/edit','PostController.edit')
2.route.resource(资源路由、路由命名、请求路由的格式fomat、路由群组)
// Route.resource('posts','PostController')//资源路由
// // .apiOnly()//去掉创建、编辑的路由 返回404
// // .only(['index','show'])//指定处理的路由 其他路由返回404
// .except(['index'])//不包含某路由
//
// // Route.get('/users', ()=>'list of users')
// // .as('users.index') //命名路由,资源路由会自动生成 对应的控制器方法 如posts.show
//
//
// Route.get('/users',({request}) => {
// switch (request.format()) {//判断请求路由的格式
// case 'json':
// return[
// {name:'xiaoyang'},
// {name:'xiaoxue'}
// ]
//
// break;
// default:
// return `
// - xiaoyang
// - xiaoxue
// `
//
// }
// })
// // .formats(['json'])//设置路由支持的格式
// .formats(['json','html'],true)//设置路由支持的格式,true限定请求的格式
//
// Route.group(()=>{ //路由群组 定义设置具有相同特性额路由
// Route.get('/users',()=>'manage users')
// Route.get('/posts',()=>'manage posts')
// })
// .prefix('admin')//设置共同的地址前缀
//
// Route.any('*',({view})=>view.render('welcome'))
//html中使用命名路由
// {{-- 使用路由名字 --}}
// <a style="color:#fff;" href="{{route('users.index')}}">list of users</a>
3.获取地址参数、请求数据、头部信息
// Route.get('/posts',({request})=>{
// console.log(request.get());// 得到地址中的参数
// })
// Route.post('/posts',({request}) =>request.post())//得到客户端发送的data
// Route.post('/posts',({request}) =>request.all())//得到客户端发送的data 以及地址中的参数
// Route.post('/posts',({request}) =>request.only(['title','content']))//得到客户端发送的data及地址参数中部分数据
// Route.post('/posts',({request}) =>request.except(['title','content']))//不想得到客户端发送的data中部分数据
// Route.post('/posts',({request}) =>request.input("status","draft"))//得到客户端发送的data中指定数据,若没有则默认为draft
// Route.post('/posts',({request}) =>request.collect(['title','content']))//得到客户端发送的表单数据 一种集合的数据
//
// Route.get('/posts',({request})=>request.headers())//获取请求头部信息
// Route.get('/posts',({request})=>request.header('user-agent'))//获取请求头部某个信息
// Route.get('/posts',({response})=>{
// response.header('Content-type','text/plain')//设置返回的数据为纯文本格式
// // response.type('text/plain')
// return '<h1>posts list </h1>' //默认 以text/html 返回
// })
// Route.get('/posts',({request,response})=>{
// // return request.headers()//获取请求头部信息
// response.cookie('theme','dark')//设置返回cookie的属性值
// response.clearCookie('theme')//删除cookie值
// // return request.cookies()//返回cookies中值
// return request.cookie('theme','lingt')//返回cookies中某个值,若不存在,就为lingt
// })
//注意 kernel.js app.js 的配置
// const globalMiddleware = [
// 'Adonis/Middleware/BodyParser',//处理请求数据
// 'Adonis/Middleware/Session',
// // 'Adonis/Middleware/Shield',
// 'Adonis/Middleware/AuthInit'
// ]
//
// const providers = [
// '@adonisjs/framework/providers/AppProvider',
// '@adonisjs/framework/providers/ViewProvider',
// '@adonisjs/lucid/providers/LucidProvider',
// '@adonisjs/bodyparser/providers/BodyParserProvider',
// '@adonisjs/cors/providers/CorsProvider',
// '@adonisjs/shield/providers/ShieldProvider',
// '@adonisjs/session/providers/SessionProvider',
// '@adonisjs/auth/providers/AuthProvider'
// ]
4.请求响应、异步响应、重定向
// Route.get('/posts',({response})=>{
// // response.send('list of posts')//响应 返回数据信息
// // return 'list of posts' //或者return
// return { //服务端自动将返回的 对象 数组 以json格式 返回 客户端
// time:"231",
// name:"asf"
// }
// })
//
//
// 异步响应 例如 先查询数据库 再返回响应
// const delay =(data,time) =>{ //模拟异步操作
// return new Promise((resolve,reject)=>{
// setTimeout(()=>{
// resolve(data)
// },time)
// })
// }
//
// Route.get('/posts',async ({response}) =>{ //async 表示包含异步操作
// const data = await delay( //await 表示等一会
// 'list of posts yibu',
// 3000
// )
// return data
// })
// 重定向 方式一 redirect
// Route.get('/list-of-posts',({response}) =>{
// // response.redirect('/posts') //重定向
// // response.redirect('/posts',true) //重定向 并携带查询参数
// response.redirect('/posts',true,301) //重定向 并携带查询参数 状态码为301
// })
// Route.get('/posts',() =>{
// return 'list of posts redirect'
// })
// 重定向 方式二 route 使用路由名字
Route.get('/list-of-posts',({response}) =>{
response.route('list-of-posts') //使用路由名 实现重定向
})
Route.get('/list-of-food-posts',({response}) =>{
response.route('list-of-posts',{category:'food'})//使用路由名 实现重定向 并携带参数
})
Route.get('/posts/:category',({params}) =>{
return `list of posts route ${params.category || 'default'}`
})
.as('list-of-posts')