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>