-
koa-bodyparser 中间件
可以把 POST 请求的参数解析到ctx.request.body
//安装 cnpm i koa-bodyparser --save //使用demo const Koa = require('koa') const bodyParser = require('koa-bodyparser') let app = new Koa() app.use(bodyParser()) app.use(async ctx => { if(ctx.method === 'POST' && ctx.url === '/'){ let postData = ctx.request.body; ctx.body = postData; } }) app.listen(3000)
-
koa-router中间件
-
koa-static中间件 和 koa-views中间件
koa-static 是专门用于加载静态资源的中间件,通过它可以为页面请求加载 css JavaScript 等静态资源。
而 koa views用于加载 HTML 模板文件
//安装
cnpm i koa-static --save
cnpm i koa-views --save
//demo
const Koa = require('koa')
const static = require('koa-static')
const views = require('koa-views')
const bodyParser = require('koa-bodyparser')
const path = require('path')
const Router = require('koa-router')
const app = new Koa()
const router = new Router()
//加载模板
app.use(views(path.join(__dirname,'./views'),{
extension:'ejs'
}))
//加载静态资源
app.use(static(
path.join(__dirname,'./static')
))
//渲染模板
router.get('/',async ctx => {
await ctx.render('index')
})
router.post('/',async ctx => {
let postData = ctx.request.body;
ctx.body = postData;
})
app
.use(bodyParser())
.use(router.routes())
.use(router.allowedMethods()) //对异常状态码的处理
app.listen(3000)
4、koa-better-body中间件
接受多部分表单数据文件和字段
const body = require('koa-better-body');
let server = new Koa();
server.listen(8081);
//中间件
server.use(body({
uploadDir:path.resolve(__dirname,'./static/upload')
}));
//使用的话通过以下来接收数据
ctx.request.fields
5、koa-ejs中间件
后端渲染
6、await-fs中间件
const fs = require('await-fs');
router.post('/login',async ctx=>{
let {user,pass}=ctx.request.fields;
let admins=JSON.parse((await fs.readFile(
path.resolve(__dirname,'../../admins.json')
)).toString());
ctx.body=admins;
})