一步步教你使用node搭建一個(gè)小頁(yè)面
介紹
這個(gè)小demo是Node.js, Express, MongoDB & More: The Complete Bootcamp系列課程的第一個(gè)demo,本篇文章主要介紹實(shí)現(xiàn)過程以及可能帶來的思考。
完成展示
首頁(yè)

詳情頁(yè)面

前置知識(shí)
首先我們需要了解一些知識(shí),以便完成這個(gè)demo
fs
首先是node對(duì)文件的操作,也就是fs模塊。本文只介紹一些簡(jiǎn)單的操作,大部分是例子中需要用到的方法。想要了解更多可以去API文檔去查找。
首先引入fs模塊:const fs = require("fs");
readFileSync
const textIn = fs.readFileSync("./txt/append.txt", "utf-8");上面代碼展示的是readFileSync的使用,兩個(gè)參數(shù)中,第一個(gè)參數(shù)是要讀取文件的位置,第二個(gè)參數(shù)是編碼格式encoding。如果指定encoding返回一個(gè)字符串,否則返回一個(gè)Buffer。
writeFileSync
fs.writeFileSync("./txt/output.txt", textOut);writeFileSync毫無疑問是寫文件,第一個(gè)參數(shù)為寫文件的地址,第二個(gè)參數(shù)是寫入的內(nèi)容。
readFile、writeFile
上面的兩個(gè)API都是同步的讀寫操作。但是nodeJs作為一個(gè)單線程的語言,在很多時(shí)候,使用同步的操作會(huì)造成不必要的擁堵。例如等待用戶輸入這類I/O操作,就會(huì)浪費(fèi)很多時(shí)間。所以 js中有異步的方式解決這類問題,nodejs也一樣。通過回調(diào)的方式來解決。
fs.readFile("./txt/append.txt", "utf-8", (err, data) => {
fs.writeFile("./txt/final.txt", `${data}`, (err) => {
console.log("ok");
});
});http
createServer
http.createServer(requestListener);
http.createServer() 方法創(chuàng)建一個(gè)HTTP Server 對(duì)象,參數(shù)requestListener為每次服務(wù)器收到請(qǐng)求時(shí)要執(zhí)行的函數(shù)。
server.listen(8001, "127.0.0.1", () => {
console.log("Listening to requests on port 8001");
});上面表代碼表示監(jiān)聽8001端口。
url
url.parse
這個(gè)模塊可以很好的處理URL信息。比如當(dāng)我們請(qǐng)求http://127.0.0.1:8001/product?id=0的時(shí)候通過url.parse可以獲取到很多信息。如下圖:

實(shí)現(xiàn)過程
對(duì)于已經(jīng)給出的完成頁(yè)面,我們可以看到在切換頁(yè)面時(shí)URL的變化,所以我們需要得到用戶請(qǐng)求時(shí)的 URL地址,并根據(jù)地址展示不同的頁(yè)面。所以我們通過path模塊得到pathname,進(jìn)行處理。
對(duì)于不同的請(qǐng)求,我們返回不同的界面。首先對(duì)于Overview page界面,由于它的類型是 html界面,所以我們通過writeHead將它的Content-type設(shè)置為text/html。
res.writeHead(200, {
"Content-type": "text/html",
});其他的幾個(gè)返回html的頁(yè)面也是同樣的處理。由于前端界面已經(jīng)給出,我們只需要讀取JSON里面的數(shù)據(jù),并將模板字符串替換即可。最后我們通過res.end(output)返回替換后的頁(yè)面。
總結(jié)
通過這一個(gè)小頁(yè)面的練習(xí),可以學(xué)習(xí)到node對(duì)文件的操作以及HTTP模塊的操作。并對(duì)后端有了初步的認(rèn)識(shí)。
到此這篇關(guān)于使用node搭建一個(gè)小頁(yè)面的文章就介紹到這了,更多相關(guān)node搭建小頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs實(shí)現(xiàn)遍歷文件夾并統(tǒng)計(jì)文件大小
這篇文章主要介紹了nodejs實(shí)現(xiàn)遍歷文件夾并統(tǒng)計(jì)文件大小,下面使用nodejs的遍歷文件夾文件內(nèi)容,并且讀取所有的文件,并采取排序往大到小的順序進(jìn)行輸出,需要的朋友可以參考下2015-05-05
解決Node.js使用MySQL出現(xiàn)connect ECONNREFUSED 127.0.0.1:3306的問題
這篇文章主要介紹了解決Node.js使用MySQL出現(xiàn)connect ECONNREFUSED 127.0.0.1:3306報(bào)錯(cuò)的相關(guān)資料,文中將問題描述的很清楚,解決的方法也介紹的很完整,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
node.js中的querystring.stringify方法使用說明
這篇文章主要介紹了node.js中的querystring.stringify方法使用說明,本文介紹了querystring.stringify的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
Node.js console控制臺(tái)簡(jiǎn)單用法分析
這篇文章主要介紹了Node.js console控制臺(tái)簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了nodejs console控制臺(tái)功能、常見函數(shù)與簡(jiǎn)單使用技巧,需要的朋友可以參考下2019-01-01
Node.js中如何合并兩個(gè)復(fù)雜對(duì)象詳解
下面這篇文章主要給大家介紹了在Node.js中如何合并兩個(gè)復(fù)雜對(duì)象的方法,文中給出了詳細(xì)的示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友可以參考,下面來一起看看吧。2016-12-12
Nodejs?Docker鏡像體積優(yōu)化實(shí)踐詳解
這篇文章主要為大家介紹了Nodejs?Docker鏡像體積優(yōu)化實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
express中創(chuàng)建 websocket 接口及問題解答
本文主要介紹了express中創(chuàng)建 websocket 接口及問題解答,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05

