text Koa Post数据处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text Koa Post数据处理相关的知识,希望对你有一定的参考价值。
const ethSC = require('./SmartContract.js');
// callSC.callSmartContract(1);
const Koa = require('koa');
const app = new Koa();
const route = require('koa-route');
//对于POST请求的处理,koa2没有封装获取参数的方法
var invoke = async (ctx,next) => {
// 当POST请求的时候,解析POST表单里的数据,并显示出来
let postData = await parsePostData( ctx );
let opt = parseInt(postData['option']);
console.log("this is option data %d",opt);
ethSC.callSmartContract(opt);
};
// 解析上下文里node原生请求的POST参数
function parsePostData( ctx ) {
return new Promise((resolve, reject) => {
try {
let postdata = "";
ctx.req.addListener('data', (data) => {
postdata += data;
})
ctx.req.addListener("end",function(){
let parseData = parseQueryStr( postdata );
resolve( parseData );
})
} catch ( err ) {
reject(err);
}
})
}
// 将POST请求参数字符串解析成JSON
function parseQueryStr( queryStr ) {
let queryData = {};
let queryStrList = queryStr.split('&');
console.log( "parseQueryStr--original post data is "+ queryStrList );
for ( let [ index, queryStr ] of queryStrList.entries() ) {
let itemList = queryStr.split('=');
queryData[ itemList[0] ] = decodeURIComponent(itemList[1])
}
return queryData
}
var index = function(ctx) {
ctx.response.type="txt";
ctx.response.body= "hello world";
}
// app.use(route.post("/",opt(3)));
//app.use(route.get('/3'),invoke(3));
app.use(route.get('/', index));
app.use(route.post('/',invoke));
app.listen(3100);
以上是关于text Koa Post数据处理的主要内容,如果未能解决你的问题,请参考以下文章
Koa2学习POST请求
koa post 提交数据 koa-bodyparser 中间件的使用
1koa的安装,get和post方法的基础使用
koa-router post请求接收的参数为空
koa2-6
koa2 get post api restful前端联调