天天看點

koa2.x--原生處理post請求

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');
});










           
  • index.ejs
<!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>
           
  • 效果圖