溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用node搭建一個小頁面

發(fā)布時間:2022-12-01 10:03:45 來源:億速云 閱讀:113 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“如何使用node搭建一個小頁面”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“如何使用node搭建一個小頁面”文章能幫助大家解決問題。

完成展示

首頁

如何使用node搭建一個小頁面

詳情頁面

如何使用node搭建一個小頁面

前置知識

首先我們需要了解一些知識,以便完成這個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為每次服務(wù)器收到請求時要執(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可以獲取到很多信息。如下圖:

如何使用node搭建一個小頁面

實現(xiàn)過程

對于已經(jīng)給出的完成頁面,我們可以看到在切換頁面時URL的變化,所以我們需要得到用戶請求時的 URL地址,并根據(jù)地址展示不同的頁面。所以我們通過path模塊得到pathname,進行處理。

對于不同的請求,我們返回不同的界面。首先對于Overview page界面,由于它的類型是 html界面,所以我們通過writeHead將它的Content-type設(shè)置為text/html

res.writeHead(200, {
      "Content-type": "text/html",
});

其他的幾個返回html的頁面也是同樣的處理。由于前端界面已經(jīng)給出,我們只需要讀取JSON里面的數(shù)據(jù),并將模板字符串替換即可。最后我們通過res.end(output)返回替換后的頁面。

關(guān)于“如何使用node搭建一個小頁面”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI