1.1路由
http://localhost:3000/index
http://localhost:3000/login
輸入不同的請求地址研铆,服務器端就會為客戶端響應不同的內(nèi)容坦敌,比如得到首頁內(nèi)容造烁,和登錄內(nèi)容吃粒。
在網(wǎng)站應用中有一個路由的概念沪哺,通過路由就能做到這個事情阿迈。
什么是路由典蜕?指客戶端請求地址與服務器端程序代碼對應的對應關系畦韭。簡單來說疼蛾,就是請求什么響應什么。
形成對應關系艺配,就是通過路由實現(xiàn)据过。
GET /index? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 響應首頁
GET/list? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?響應列表頁
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?路由
GET/article? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?響應文章頁
GET/login? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?登錄邏輯處理
實現(xiàn)路由的核心代碼:
//當客戶端發(fā)送來請求時
app.on('request',(req,res)=>{
//獲取客戶端的請求路徑
let{pathname}=url.parse(req.url);
if(pathname =='/' || pathname=='/index'){
? ? res.end('歡迎來到首頁');
}else if(pathname=='./list'){
? ? res.end('歡迎來到列表頁');
}else{
? ? ?res.end('抱歉,您訪問的頁面出游了');
}
});
此處缺少了請求方式的判斷妒挎。
請求地址由誰來決定绳锅,由開發(fā)人員決定!
開始:
切換到代碼編輯器中:
新建文件夾:route新建文件app.js
1.引入系統(tǒng)模塊http
2.創(chuàng)建網(wǎng)站服務器
3.為網(wǎng)站服務器對象添加請求事件
4.實現(xiàn)路由功能
4.1獲取客戶端的請求方式
4.2獲取客戶端的請求地址
const http=require('http');
const url = require('url');
const app = http.creatServer();
app.on('request',(req,res)=>{
// 獲取請求方式
? ? ? ? const method =? req.method.toLowerCase();
? ? ? ? const? pathname? = url.parse(req.url).pathname;
// 響應報文的處理酝掩,解決漢字亂碼問題
? ? ? res.writeHead(200,{
? ? ? 'content-type':'text/html;charset=utf-8'?
? ? ? });
? ? ? ?if(method == 'get'){? ? ? ? ? ?
? ? ? ? ? ? ? if(pathname=='/'||pathname=='/index'){
? ? ? ? ? ? ? ? ? ? ? ?res.end('歡迎來到首頁')
? ? ? ? ? ? ? ?}else if(pathname == '/list'){
? ? ? ? ? ? ? ? ? ? ? ? res.end('歡迎來到列表頁')
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? res.end('您訪問的頁面不存在')鳞芙;
? ? ? ? ? ? ? ? }
? ? ? ? }else if(method=='post'){
}
});
// 監(jiān)聽端口
app.listen(3000);
console.log('服務器啟動成功');
切花到命令行窗口:nodemon app.js
打開瀏覽器在地址欄中輸入:localhost:3000/index
locallhost:3000/list
PS:當前代碼中沒有寫POST請求方式的地址判斷,實際上根get是一樣的期虾。