1.对web服务器的封装
app.js是主文件
2.基本路由配置
3.get传值
get传值使用url解析模块
解析路径let getData=url.parse(req.url,true).query;
1.js文件代码
//get传值
else if(pathname=="/regest"){
//解析一定要带第二个参数true,true是确认解析,将解析的值转化为json
let getData=url.parse(req.url,true).query;
ejs.renderFile("view/regest.ejs",{
urldata:getData
},(err,str)=>{
if(err){
throw err;
}
res.end(str);
})
}
2. regest.ejs文件代码
<body>
注册
<%=urldata.name%>---<%=urldata.sex%>
</body>
4.post传值
① 只有表单验证才有
② 需要监听去拿值
③ 当在注册界面点击提交的时候,链接后边会加上 /denglu 会自动网址跳转到登录界面
④ 读取数据时需要给数据前加一个问号,因为post传值方法不会给网址后边加问号,不加问号的话,表单的数据无法转化出来
1. js文件代码
//post传值
else if(pathname=="/denglu"){
let info="?";
//data有数据可读时触发
req.on("data",(res)=>{
info+=res.toString();
});
//数据读取完成触发
req.on("end",()=>{
//postdata 表单数据
console.log(postdata); //{ userid: '1111', userpwd: '2222' }
let postdata=url.parse(info,true).query;
//跳转到denglu.ejs界面
ejs.renderFile("view/denglu.ejs",{
postdata:postdata
},(err,str)=>{
if(err){
throw err;
}
res.end(str);
});
});
}
2. 注册界面的ejs代码
<body>
注册
<%=urldata.name%>---<%=urldata.sex%>
<form action="/denglu" method="POST">
<ul>
<li>
账号:<input type="text" name="userid">
</li>
<li>
密码:<input type="text" name="userpwd">
</li>
<li>
<input type="submit" value="登录">
</li>
</ul>
</form>
</body>
3. 注册成功后的跳转页面
<body>
登录成功!
<%=postdata.userid%>----<%=postdata.userpwd%>
</body>