使用node.js構建一個web服務器
先介紹node.js的安裝,再介紹使用node.js構建一個簡單的web服務器,最后通過一個簡單的示例,演示網頁與服務器之間的資料互動的實作,
WEB服務器
WEB服務器也稱為WWW服務器,WWW(World Wide Web、翻譯成中文:萬維網或環球資訊網)服務器的基本功能就是提供Web資訊瀏覽服務,Web服務器可以向Web瀏覽器等客戶端提供檔案,也可以放置網站檔案,讓全世界瀏覽,更可以放置資料檔案,讓全世界下載,
常見的Web服務器軟體有Apache、Internet資訊服務器(Internet Information Services,IIS)等,
Apache服務器:Apache服務器是一款開源免費的服務器軟體,幾乎可以在所以有的計算機平臺上運行,由于Apache是開源,因此所有人都可以參與開發新功能,并且不斷對Apache服務器進行完善,Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁,它是一個模塊化的服務器,可以運行在幾乎所有廣泛使用的計算機平臺上(即支持多平臺),其屬于應用服務器,
IIS服務器:IIS服務器是微軟的服務器,可允許IIS在公共Intranet或Internet上發布相信的Web服務器,IIS只能在微軟公司的windows作業系統下使用,
不依賴前面提到的Web服務軟體,使用Node.js 也能搭建Web服務器,
Node.js是什么?
簡單地說,Node.js 是一種開源且跨平臺的服務器端 JavaScript 運行時環境,并可以讓 JavaScript 做后端,
在Windows 上安裝 Node.js
要使用Node.js 需要安裝之,
要使用Node.js 需要安裝之,先到nodejs官網 Node.js 或到中文網站下載 | Node.js 中文網 下載
LTS代表“長期支持”,建議大多數用戶使用這種版本,我下載的是node-v14.18.1-x64.msi
雙擊下載后的安裝包 直接安裝就可以了,可以自定義路徑,安裝時會自動配置環境變數(默認自動將安裝路徑添加path環境變數),為了照顧新手,下面詳細演示安裝程序,
雙擊下載后的安裝包 安裝,如下所示

點擊Next按鈕,將出現如下界面:

勾選接受協議可選項,點擊 next 按鈕 ,將出現如下界面:

Node.js默認安裝目錄為 "C:\Program Files\nodejs\" ,可以修改目錄(我修改了盤符D),然后點擊 next按鈕,將出現如下界面:

你可以點擊樹形圖示節點來選擇你需要的安裝模式 , 在此保持默認不變,點擊下一步 next按鈕,將出現如下界面:

如果要安裝工具來編譯本機模塊,請單擊復選框,通常,不需要安裝這些工具,因此不必選中此框,點擊next按鈕,將出現如下界面:

單擊Install(安裝)按鈕開始安裝Node.js,將出現如下界面:

請稍等一會,將出現如下界面:

此時,單擊Finish(完成)按鈕退出設定向導,
安裝完后的目錄如下圖所示:

你將看到目錄中有npm.cmd,它是什么?
安裝Node.js時將同時自動安裝npm,它是node包(模塊)管理工具,能解決Node.js代碼部署上的很多問題,常見的使用場景有以下幾種:
允許用戶從NPM服務器下載別人撰寫的第三方包到本地使用,
允許用戶從NPM服務器下載并安裝別人撰寫的命令列程式到本地使用,
允許用戶將自己撰寫的包或命令列程式上傳到NPM服務器供別人使用,
如果你安裝的是舊版本的 npm,可以很容易得通過 npm 命令來升級,Window 系統使用以下命令即可:
npm install npm -g
使用npm包管理工具安裝第三方庫(npm包),有兩種安裝方式:全域安裝和區域安裝:
從敲的命令列來看,差別只是有沒有-g而已,如
npm install X # 區域(本地)安裝,則是將模塊下載到當前命令列所在目錄,可能會遇到 “'X' 不是內部或外部命令,也不是可運行的程式”錯誤,
npm install X -g # 全域安裝,可以直接在命令列里使用,
【npm 、cnpm常用命令及.npmrc組態檔詳解
npm 、cnpm常用命令及.npmrc組態檔詳解_cnds123的專欄-CSDN博客 】
檢查是否正確安裝了Node.js和npm
win+r打開運行,輸入cmd后進入命令列界面,然后輸入node -v和npm -v命令進行node的版本號和npm的版本號的查看,參見下圖:

正確顯示了版本號,OK!
使用node.js構建一個簡單的web服務器
在你專案的目錄(這里以D:\測驗檔案夾為例)中創建一個叫myServer.js 的檔案,并寫入以下代碼:
var http = require('http');
http.createServer(function (request, response) {
// 發送 HTTP 頭部
// HTTP 狀態值: 200 : OK
// 內容型別: text/plain,并用charset=UTF-8解決輸出中文亂碼
response.writeHead(200, {'Content-Type': 'text/plain; charset=UTF-8'});
// 下句是發送回應資料
response.end('Hello World! 這是簡單的web服務器測驗,\n');
}).listen(8888);
// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8888/');
說明:其中var http = require("http"); 使用 require 指令來載入 http 模塊,并將實體化的 HTTP 賦值給變數 http,
撰寫了.js的程式,運行的時候就要通過node.js來運行了,在CMD中先切換到撰寫程式的目錄下,然后用node XXX.js即可啟動服務,若不先切換路徑,則用node 路徑\XXX.js啟動服務,然后在瀏覽器中輸入相應的監聽IP地址加上埠號,這里的埠號使用比較大一點的就可以,因為是回環測驗,所以使用127.0.0.1來作為測驗IP,
使用 node D:\測驗檔案夾\myServer.js,參見下圖:

簡單例子運行成功了,這其實是用node.js搭建了一個服務器,然后來監聽埠的訪問事件,最后做出相應的回應,需要指出的是,當我們關閉CMD或按CTRL+C鍵之后服務就關閉了,
現在,打開瀏覽器訪問 http://127.0.0.1:8888/,你會看如下的網頁:

成功了!
網頁與服務器之間的資料互動示例
現在通過一個簡單的示例,演示網頁與服務器之間的資料互動的實作,
這個例子有兩部分:服務器代碼和網頁代碼
服務器代碼如下:
//require表示引包,引包就是參考自己的一個特殊功能
var http = require("http");
var url = require("url");
var server = http.createServer(function(req,res){
//得到查詢部分,由于寫了true,那么就是一個物件
var queryObj = url.parse(req.url,true).query;
var name = queryObj.name;
var age = queryObj.age;
var sex = queryObj.sex;
res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"});
res.end("服務器收到了表單請求" + name + age + sex);
});
//運行服務器,監聽3000埠(埠號可以任改)
server.listen(3000,"127.0.0.1");
// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:3000/')
保存檔案名為server2.js ,專案的目錄(這里以D:\測驗檔案夾為例)中
使用 node D:\測驗檔案夾\Server2.js運行:

網頁代碼如下:
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>與服務端互動網頁</title>
</head>
<body>
<form action="http://127.0.0.1:3000/" method="GET">
姓名:
<input type="text" name="name" /> <br />
年齡:
<input type="text" name="age" /> <br />
<input type="radio" name="sex" value="男"/> 男
<input type="radio" name="sex" value="女"/> 女
<br />
<input type="submit">
</form>
</body>
</html>
保存檔案名為 與服務端互動示例.html ,用瀏覽器運行:

特別說明,示例比較簡單,特別是后端對資料的處理進行了簡化,在實際應用系統中后端一般使用資料庫保存資料,這樣做主要是讓新手有一個直觀易懂的感性了解,讓初學者有個總體概觀,便于快速入門,有了這些,深入學習就有了基礎,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/330344.html
標籤:其他
上一篇:javascript的基礎互動
