原生 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);