代码拉取完成,页面将自动刷新
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')
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。