koa 中獲取 post 提交數據


原生 NodeJS 獲取 post 提交的數據

request.js

exports.getPostData=function(ctx){
    return new Promise((resolve,reject)=>{
       try {
           let params = '';
           ctx.req.on('data', (chunk) => {
               params += chunk;
           })
           ctx.req.on('end', (chunk) => {
               resolve(params)
           })
       } catch (error) {
           console.log("獲取post提交的數據錯誤")
           reject(error)
       }
    })
}

app.js

const Koa = require('koa')
const app = new Koa()
const router = require('koa-router')()
const views = require('koa-views')
const ejs = require('ejs')
const request = require('./utils/request')

//應用ejs模板引擎
app.use(views('views',{
    extension:'ejs'
}))

router.get('/register',async (ctx)=>{
    console.log("注冊頁")
    await ctx.render('register')
})

router.post('/doRegister',async (ctx)=>{
    let data = await request.getPostData(ctx)
    console.log("注冊頁提交的數據是:", data) //userName=admin&password=123
    ctx.body=data
})

app.use(router.routes());  
app.use(router.allowedMethods());
app.listen(3000);

 

 

使用 koa-bodyparser 中間件獲取提交數據

https://www.npmjs.com/package/koa-bodyparser

npm install --save koa-bodyparser
 
const Koa = require('koa')
const app = new Koa()
const router = require('koa-router')()
const views = require('koa-views')
const ejs = require('ejs')
const bodyParser = require('koa-bodyparser')

//應用ejs模板引擎
app.use(views('views',{
    extension:'ejs'
}))

//配置 bodyParsey中間件
app.use(bodyParser())


router.get('/register',async (ctx)=>{
    console.log("注冊頁")
    await ctx.render('register')
})

router.post('/doRegister',async (ctx)=>{
    let data = ctx.request.body
    console.log("注冊頁提交的數據是:", data) //{"userName":"admin","password":"123"}
    ctx.body=data
})

app.use(router.routes());  
app.use(router.allowedMethods());
app.listen(3000);

 

 

 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM