作者:但须g婚后 | 来源:互联网 | 2023-09-06 23:36
module文件夹下的common.js方法封装exports.getPostDatafunction(ctx){returnnewPromise(function(
module文件夹下的 common.js方法封装
exports.getPostData=function(ctx){
return new Promise(function(resolve,reject){
try{
let str='';
ctx.req.on('data',function(chunk){
str+=chunk;
})
ctx.req.on('end',function(chunk){
resolve(str);
})
}catch(err){
reject(err);
}
})
}
后台引入ejs引擎 所以 views/index.ejs代码如下
<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>
后台 app.js
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);
以上是原生nodejs在koa中获取表单提交的数据
用koa-bodyparser就更简单了。不需要封装一个方法来接收数据
如下 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);