需要在終端重新執(zhí)行一次node app.js瀏覽器的內(nèi)容才會刷新
4.如何獲取url中的參數(shù)
============================================================================
4.1 URL類基礎(chǔ)
建議大家可以先看看Node.js API文檔中的url 網(wǎng)址部分,這里做簡要說明。url字符串在nodejs的url模塊,有兩種解析API,其中舊版的API為 url.parse()
,目前已經(jīng)棄用;新版本的API——new URL()實(shí)現(xiàn)了與 Web 瀏覽器使用的相同的 WHATWG 網(wǎng)址標(biāo)準(zhǔn),基本使用方式如下:
// 和舊版API不同,不用引入node自帶的url模塊
// const url = require(‘url’)
var api = “http://www.baidu.com?name=zhang&&age=20”
// 創(chuàng)建URL類的實(shí)例對象
var myUrl = new URL(api)
var params = myUrl.searchParams
console.log('myUrl: ',myUrl)
console.log('params: ',myUrl.searchParams)
// 使用get方法獲取url對象中searchParams屬性對象的name屬性
console.log(‘name:’+ params.get(‘name’))
// 往url中插入?yún)?shù)sex=male
myUrl.searchParams.append(‘sex’,‘male’)
console.log(myUrl.href)
4.2 動態(tài)監(jiān)測URL的變化
在獲取http服務(wù)的網(wǎng)址參數(shù)之前,我們先看看頁面的請求變化以及request參數(shù)的變化:
const http = require(‘http’);
http.createServer((req,res)=>{
// if(req.url !== ‘/favicon.ico’){
// console.log(req.url); // 獲取url
// }
// 設(shè)置響應(yīng)頭
// 狀態(tài)碼是200,文件類型是html,字符集是utf-8
res.writeHead(200,{“Content-Type”:“text/html;charset=utf-8”}); // 解決亂碼
res.write(“”)
console.log(req)
res.end() // 結(jié)束響應(yīng),如果沒寫,瀏覽器刷新按鈕會一直轉(zhuǎn)
}).listen(3000)
console.log(‘Server running at http://127.0.0.1:3000/’);
我們手動修改瀏覽器上的地址為 http://127.0.0.1:3000/?name=zhang&age=25
,然后打開控制臺刷新頁面,發(fā)現(xiàn)Network發(fā)起了兩次請求,第一次是對頁面內(nèi)容的請求,第二次是對頁面圖標(biāo)的請求。
對照終端req的輸出
接下來我們使用URLSearchParams類創(chuàng)建url參數(shù)實(shí)例對象,并加以解析:
const http = require(‘http’);
http.createServer((req,res)=>{
// 屏蔽圖標(biāo)的請求
if(req.url !== ‘/favicon.ico’){
// 截取/?name=zhang&age=25后面的參數(shù)創(chuàng)建URLSearchParams實(shí)例對象
const params = new URLSearchParams(req.url.slice(2))
console.log(params)
console.log(params.get(‘name’))
console.log(params.get(‘a(chǎn)ge’))
}
// 設(shè)置響應(yīng)頭
// 狀態(tài)碼是200,文件類型是html,字符集是utf-8
res.writeHead(200,{“Content-Type”:“text/html;charset=utf-8”}); // 解決亂碼
res.write(“”)
res.end() // 結(jié)束響應(yīng),如果沒寫,瀏覽器刷新按鈕會一直轉(zhuǎn)
}).listen(3000)
console.log(‘Server running at http://127.0.0.1:3000/’);
下一篇 nodejs項目實(shí)戰(zhàn)教程02——nodejs應(yīng)用自動更新
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)前端工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上前端開發(fā)知識點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加V獲取:vip1024c (備注前端)
計算機(jī)網(wǎng)絡(luò)
-
HTTP 緩存
-
你知道 302 狀態(tài)碼是什么嘛?你平時瀏覽網(wǎng)頁的過程中遇到過哪些 302 的場景?
-
HTTP 常用的請求方式,區(qū)別和用途?
-
HTTPS 是什么?具體流程
-
三次握手和四次揮手
-
你對 TCP 滑動窗口有了解嘛?
-
WebSocket與Ajax的區(qū)別
-
了解 WebSocket 嘛?
-
HTTP 如何實(shí)現(xiàn)長連接?在什么時候會超時?
-
TCP 如何保證有效傳輸及擁塞控制原理。
-
TCP 協(xié)議怎么保證可靠的,UDP 為什么不可靠?
CodeChina開源項目:【大廠前端面試題解析+核心總結(jié)學(xué)習(xí)筆記+真實(shí)項目實(shí)戰(zhàn)+最新講解視頻】
算法
-
鏈表
-
字符串
-
數(shù)組問題
-
二叉樹
-
排序算法
-
二分查找
-
動態(tài)規(guī)劃
-
BFS
-
棧
-
DFS
-
回溯算法文章來源:http://www.zghlxwxcb.cn/news/detail-847154.html
a878.png)
CodeChina開源項目:【大廠前端面試題解析+核心總結(jié)學(xué)習(xí)筆記+真實(shí)項目實(shí)戰(zhàn)+最新講解視頻】
算法
-
鏈表
-
字符串
-
數(shù)組問題
-
二叉樹
-
排序算法
-
二分查找
-
動態(tài)規(guī)劃
-
BFS
-
棧
-
DFS
-
回溯算法
文章來源地址http://www.zghlxwxcb.cn/news/detail-847154.html
到了這里,關(guān)于nodejs項目實(shí)戰(zhàn)教程01——http服務(wù)和URL類,前端開發(fā)社招面試解答之性能優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!