Nodejs中的koa框架及其他知识点

//路由传参
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';
});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值