exports.getPostData=function(ctx){
return new Promise(function(resolve,reject){//需要返回一个promise对象
try{
let str='';
ctx.req.on('data',function(chunk){
str+=chunk;
})
ctx.req.on('end',function(chunk){
resolve(str);
})
}catch(err){
reject(err);
}
})
}
<!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>
var Koa=require('koa'),
router = require('koa-router')(),
views = require('koa-views'),
common = require('./module/common.js');
var 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中获取表单提交的数据
var data=await common.getPostData(ctx);
console.log(data);
ctx.body=data;
})
app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);
如下 koa-bodyparser.js
/*
Koa 中 koa-bodyparser 中间件获取表单提交的数据
1.npm install --save koa-bodyparser
2.引入var bodyParser = require('koa-bodyparser');
3.app.use(bodyParser());
4.ctx.request.body; 获取表单提交的数据
* */
var Koa=require('koa'),
router = require('koa-router')(),
views = require('koa-views'),
bodyParser = require('koa-bodyparser');
var app=new Koa();
/*应用ejs模板引擎*/
app.use(views('views',{
extension:'ejs'
}))
//配置post bodyparser的中间件
app.use(bodyParser());
router.get('/',async (ctx)=>{
await ctx.render('index');
})
//接收post提交的数据
router.post('/doAdd',async (ctx)=>{
console.log(ctx.request.body);
ctx.body=ctx.request.body; //获取表单提交的数据
})
app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);