<form action="/index" method="post"> </form>
<!-- method = "post" / "get" -->
get传值
一般的路径跳转用get路由;
get路由传值:直接路径解析获取get传值 let query = path.query;
http.createServer((req, res) => {
let path = url.parse(req.url, true);//解析req路径
//解析路径的get传值 path.query
let query = path.query;
let pathname = path.pathname;
//直接获取 get传值
console.log(query);
//渲染页面
ejs.renderFile("view/index.ejs", (err, str) => {
if (err) {throw err;}
res.end(str);
});
}).listen()
post传值
表单提交的时候有post路由
通过监听事件req.on("data/end",(err, str)=>{})
获取post传值
http.createServer((req,res)=>{
let info="?";
req.on("data",()=>{ //监听 data事件
info += data;//拼接数据
});
req.on("end",()=>{ //监听 end事件
//post传值 { userid: 'admin', userpwd: '12345' }
console.log(url.parse(info, true).query);
//渲染页面
ejs.renderFile("view/index.ejs", (err, str) => {
if (err) {throw err; }
res.end(str);
});
});
}).listen();
express封装路由模块
- 定义一个路由的空对象
let router = {};
- 建立两种路由
router._get = {};router._post = {};
- 在app=callback(req,res)内封装一个res.send()方法(渲染页面)
res.send = (str) = >{res.wiryeHead(···);res.end(str);}
- 封装路由方法
app.get(string,callback) app.post(string,callback)
,存储方法到router对象router._get[string] = callback(req,res);
- 检测get/post路由,执行封装方法,获取传值关联到res上
//1.定义一个路由的空对象
let router = {};
// 2.建立两种路由
router._get = {};
router._post = {};
let app = (req,res) = > {
//3.封装一个send方法
res.send = (string) => {
res.writeHead(200, { "Content-Type": "text/html;Charset=utf-8"});
res.end(string);
}
//解析路由
let path = url.parse(req.url,true)
let pathname = path.pathname
if(pathname!='/favicon.ico'){
//5.检测路由,执行对应方法,获取传值关联到res上
if(router._get[pathname]){
router._get[pathname](req,res);
res.body = path.query;
}
else if(router._post[]){
router._post[](req,res);
let info = "?";
req.("on",(data)=>{
info += data;
});
req.("end",()=>{
let query = url.parse(info,true).query;
res.body = qurey;
});
}
//4.封装类似 express框架的路由 app.get(string,callback) app.post(string,callback)
app.get=(string,callback)=>{
router._get[string] = callback;
};
app.post=(string,callback)=>{
router._post[string] = callback;
};
}
module.exports = app;
- 引用
app.get(string,callback) app.post(string,callback)
app.post("/login",()=>{
ejs.renderFile("View/main.ejs",(err,str)=>{
if(err){throw err;}
res.send(str);
});
});
app.get("/index",()=>{
ejs.renderFile("View/index.ejs",(err,str)=>{
if(err){throw err;}
res.send(str);
});
});