一步步教你使用node搭建一個小頁面
介紹
這個小demo是Node.js, Express, MongoDB & More: The Complete Bootcamp
系列課程的第一個demo,本篇文章主要介紹實現(xiàn)過程以及可能帶來的思考。
完成展示
首頁
詳情頁面
前置知識
首先我們需要了解一些知識,以便完成這個demo
fs
首先是node對文件的操作,也就是fs模塊。本文只介紹一些簡單的操作,大部分是例子中需要用到的方法。想要了解更多可以去API文檔去查找。
首先引入fs模塊:const fs = require("fs");
readFileSync
const textIn = fs.readFileSync("./txt/append.txt", "utf-8");
上面代碼展示的是readFileSync的使用,兩個參數(shù)中,第一個參數(shù)是要讀取文件的位置,第二個參數(shù)是編碼格式encoding
。如果指定encoding
返回一個字符串,否則返回一個Buffer
。
writeFileSync
fs.writeFileSync("./txt/output.txt", textOut);
writeFileSync
毫無疑問是寫文件,第一個參數(shù)為寫文件的地址,第二個參數(shù)是寫入的內(nèi)容。
readFile、writeFile
上面的兩個API都是同步的讀寫操作。但是nodeJs作為一個單線程的語言,在很多時候,使用同步的操作會造成不必要的擁堵。例如等待用戶輸入這類I/O操作,就會浪費很多時間。所以 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)建一個HTTP Server 對象,參數(shù)requestListener
為每次服務器收到請求時要執(zhí)行的函數(shù)。
server.listen(8001, "127.0.0.1", () => { console.log("Listening to requests on port 8001"); });
上面表代碼表示監(jiān)聽8001端口。
url
url.parse
這個模塊可以很好的處理URL信息。比如當我們請求http://127.0.0.1:8001/product?id=0
的時候通過url.parse
可以獲取到很多信息。如下圖:
實現(xiàn)過程
對于已經(jīng)給出的完成頁面,我們可以看到在切換頁面時URL的變化,所以我們需要得到用戶請求時的 URL地址,并根據(jù)地址展示不同的頁面。所以我們通過path
模塊得到pathname
,進行處理。
對于不同的請求,我們返回不同的界面。首先對于Overview page
界面,由于它的類型是 html界面,所以我們通過writeHead
將它的Content-type
設置為text/html
。
res.writeHead(200, { "Content-type": "text/html", });
其他的幾個返回html的頁面也是同樣的處理。由于前端界面已經(jīng)給出,我們只需要讀取JSON里面的數(shù)據(jù),并將模板字符串替換即可。最后我們通過res.end(output)
返回替換后的頁面。
總結(jié)
通過這一個小頁面的練習,可以學習到node對文件的操作以及HTTP模塊的操作。并對后端有了初步的認識。
到此這篇關于使用node搭建一個小頁面的文章就介紹到這了,更多相關node搭建小頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
node.js如何自定義實現(xiàn)一個EventEmitter
我們了解到,Node采用了事件驅(qū)動機制,而EventEmitter就是Node實現(xiàn)事件驅(qū)動的基礎,本文主要介紹了node.js自定義實現(xiàn)EventEmitter,感興趣的可以了解一下2021-07-07