1 Star 1 Fork 0

one_piece/koa-note

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
04.post请求的接收.js 1.96 KB
一键复制 编辑 原始数据 按行查看 历史
one_piece 提交于 2018-05-09 18:20 . koa2-jspang
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx)=>{
// console.log(ctx.request);//经过封装的请求对象
// console.log(ctx.req); //node.js原生HTTP请求对象
//当请求时GET请求时,显示表单让用户填写
if (ctx.url === '/' && ctx.method === 'GET') {
let html = `
<h1>Koa2 request post demo</h1>
<form method="POST" action="/">
<p>userName</p>
<input name="userName" /> <br/>
<p>age</p>
<input name="age" /> <br/>
<p>webSite</p>
<input name='webSite' /><br/>
<button type="submit">submit</button>
</form>
`;
ctx.body = html;
}
//当请求时POST请求时
else if(ctx.url==='/'&&ctx.method==='POST'){
console.log(ctx.request);
let pastData = await parsePostData(ctx);
ctx.body='接收到请求';
}else{
//其他页面请求显示404页面
ctx.body='<h1>404!</h1>'
}
});
//获取post传递过来的参数,并解析成json形式
function parsePostData(ctx){
return new Promise((resolve,reject)=>{
try{
let postdata = "";
ctx.req.on("data",(data)=>{
postdata+=data;
});
ctx.req.addListener("end",()=>{
let parseData = parseQueryStr(postdata);
resolve(parseData);
})
}catch(err){
reject(error);
}
})
};
function parseQueryStr(queryStr){
let queryData = {};
let queryStrList = queryStr.split('&');
for(let [index,queryStr] of queryStrList.entries()){//{['userName=wang','age=18','webSite=jspang.com']}
let itemList = queryStr.split('=');
console.log(itemList);
queryData[itemList[0]] = decodeURIComponent(itemList[1]);
}
return queryData;
}
app.listen(3000,()=>{
console.log('server is starting at port 3000')
})
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/one_piece27/koa-note.git
git@gitee.com:one_piece27/koa-note.git
one_piece27
koa-note
koa-note
master

搜索帮助