zheewang
3/27/2018 - 4:06 AM

Koa POST with koa-bodyParse

const ethSC = require('./SmartContract.js');

// callSC.callSmartContract(1);
// add a more frindly version to desolve POST data
const Koa = require('koa');
const app = new Koa();

const route = require('koa-route');
const BodyParser = require('koa-bodyparser');
const bodyParser = new BodyParser();

//对于POST请求的处理,用koa-bodyParser获取json封装参数的方法
var invoke = async (ctx,next) => {

      // 当POST请求的时候,解析POST表单里的数据,以JSON格式并显示出来
      let postData =  ctx.request.body; 
      let opt = parseInt(postData['option']);

      console.log("this is option data %d",opt);
      ethSC.callSmartContract(opt);  
      ctx.response.redirect('/complete.html');
};

var mainPage = function(ctx) { 
    ctx.response.type="html";
    ctx.response.body= `
    <h1>Callling Smart Contract demo</h1>
    <form method="POST" action="/">
      <p>There are 3 options to choose: 1, 2, 3 </p>
      <input type="text" name="option" /><br/>
      <input type="submit",value="submit"/>
    </form>
    `
}

var complete = function(ctx){

  ctx.response.type="html";
  ctx.response.body= `
  <h1>Finished!</h1>
  `
};

// app.use(route.post("/",opt(3)));
//app.use(route.get('/3'),invoke(3));
app.use(bodyParser);
app.use(route.get('/', mainPage));
app.use(route.post('/',invoke));
app.use(route.get('/complete.html',complete));

app.listen(3100);