//路由传参
const Koa=require('koa');
const Router=require('koa-router');
let server=new Koa();
server.listen(8080);
//此处不能用router.use('./news', require('./routers/news')),因为只是为了传参,而且路由也不存在
let router=new Router();
router.get('/news/:id/', async (ctx, next)=>{
let {id}=ctx.params;
ctx.body='bbb';
await next(); //这样才会跑到下面去 (router.get('/news/1/'...)
});
router.get('/news/1/', async ctx=>{
let {id}=ctx.params;
ctx.body+='aaa';
});
server.use(router.routes());
//设置域变量
const Koa = require('koa');
const Router = require('koa-router');
let server = new Koa();
server.listen(8080);
server.context.a = 12; //server.context:相当于ctx的prototype
let router = new Router();
router.get('/news/', async ctx=>{
console.log(ctx);
ctx.body = 'bbb' + ctx.a;
});
server.use(router.routes());
//断言
ctx.assert(ctx.query.user, 400, 'username is required');
ctx.assert(ctx.query.pass, 400, 'password is required');
ctx.throw(code, msg)
ctx.assert(条件, code, msg)
//处理静态文件
const Koa = require('koa');
const Router = require('koa-router');
const static = require('koa-static');
let server = new Koa();
server.listen(8080);
let router = new Router();
router.get('/news/', async ctx=>{
ctx.body = 'bbb';
});
server.use(router.routes());
//koa-static:请求img、js、css等文件时,不需要其他逻辑,只需要读取文件
server.use(static('./static', {
maxage: 86400 * 1000,
index: '1.html'
}));
const Koa=require('koa');
const Router=require('koa-router');
const static=require('koa-static');
let server=new Koa();
server.listen(8080);
let router=new Router();
router.get('/user', async ctx=>{
});
server.use(router.routes());
let staticRouter=new Router();
staticRouter.all(/(\.jpg|\.png|\.gif)$/i, static('./static', {
maxage: 60*86400*1000
}));
staticRouter.all(/(\.css)$/i, static('./static', {
maxage: 1*86400*1000
}));
staticRouter.all(/(\.html|\.htm|\.shtml)$/i, static('./static', {
maxage: 20*86400*1000
}));
staticRouter.all('', static('./static', {
maxage: 30*86400*1000
}));
server.use(staticRouter.routes());
const Koa = require('koa');
const Router = require('koa-router');
const body = require('koa-better-body');
let server = new Koa();
server.listen(8080);
//koa-better-body:解析post数据
server.use(body({
uploadDir: './static/upload'
}));
server.use(async ctx => {
console.log(ctx.request.fields);
ctx.body = 'aaa';
});