koa2.x--原生处理post请求 代码
const Koa = require('koa');
const router = require('koa-router')();
const views = require('koa-views');
const app = new Koa();
/*应用ejs模板引擎*/
app.use(views('views', {
extension: 'ejs'
}))
router.get('/', async (ctx) => {
await ctx.render('index');
})
//接收post提交的数据
router.post('/doAdd', async (ctx) => {
//原生nodejs 在koa中获取表单提交的数据
const doPost = (ctx) => {
return new Promise((resolve, reject) => {
try {
let str = '';
ctx.req.on('data', (chunk) => {
str += chunk;
})
ctx.req.on('end', () => {
resolve(str)
})
} catch (err) { reject(err) }
})
}
const data = await doPost(ctx);
ctx.body = data;
})
app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000,()=>{
console.log('run srtver');
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="/doAdd" method="post">
用户名: <input type="text" name="username"/>
<br/>
<br/>
密 码: <input type="password" name="password"/>
<br/>
<br/>
<button type="submit">提交</button>
</form>
</body>
</html>