摘要:模塊服務器服務器指網(wǎng)站服務器,指駐留在因特網(wǎng)上的某種程序,瀏覽器的基本功能,提供信息瀏覽服務支持服務器端的腳本語言,通過腳本語言從數(shù)據(jù)庫獲取數(shù)據(jù),將結果返回給客戶端瀏覽器應用基本架構即客戶端,通過協(xié)議向服務器發(fā)起請求服務器端,指服務器,接收
node web模塊
web服務器web服務器指網(wǎng)站服務器,指駐留在因特網(wǎng)上的某種程序,web瀏覽器的基本功能,提供信息瀏覽服務
web支持服務器端的腳本語言,通過腳本語言從數(shù)據(jù)庫獲取數(shù)據(jù),將結果返回給客戶端瀏覽器
Client => Server => Business => Data Client 即客戶端,通過http協(xié)議向服務器發(fā)起請求 Server 服務器端,指web服務器,接收客戶端請求,并向客戶端發(fā)送響應的數(shù)據(jù) Business 即業(yè)務層,通過Web服務器處理應用程序,數(shù)據(jù)庫的交互,邏輯運算,調(diào)用外部程序 Data 數(shù)據(jù)層,儲存數(shù)據(jù)使用Node創(chuàng)建Web服務器
使用http模塊創(chuàng)建
需要使用substr()方法,一個從指定位置返回指定結束的方法,繼承自String 最后一個參數(shù)可省 https://developer.mozilla.org...
// server.js // 引入模塊 var http = require("http"); // http模塊 var fs = require("fs"); // fs 文件模塊 var url = require("url"); // url 統(tǒng)一資源定位符模塊 // 創(chuàng)建服務器 http.createServer((request, response) => { // 解析請求,保存進變量內(nèi) var pathname = url.parse(request.url).pathname; // 輸出請求的文件名 console.log(pathname); // 從文件系統(tǒng)中讀取文件,進行返回 fs.readFile(pathname.substr(1), (err, data) => { // 使用substr方法進行讀取文件的字節(jié),將文件名返回給回調(diào)函數(shù) if (err){ // 對錯誤進行處理 console.log(err); // 打印出錯誤 // 返回一個404 response.writeHead(404, {"Content-Type": "text/html; charset=utf-8"}); response.write("呀,什么都沒有╮(╯_╰)╭"); response.write("我猜你要的是 " + data + " ?"); response.end(); } else { // 返回 200 response.writeHead(200, {"Content-Type": "text/html; charset=utf-8"}); // 返回文件內(nèi)容 response.write(data.toString()); // 將讀取的文件內(nèi)容進行字符串化,并進行輸出 response.end(); // 關閉連接,發(fā)出數(shù)據(jù) }; }); }).listen(1937);
// index.html這是一個小Dome hello word!
訪問 http://127.0.0.1:1937/index.html
出現(xiàn)hello word完成!
PS C:UsersmingmDesktop est> node Server.js /index.html / /input.html / { [Error: ENOENT: no such file or directory, open "C:UsersmingmDesktop estinput.html"] errno: -4058, code: "ENOENT", syscall: "open", path: "C:UsersmingmDesktop estinput.html" }改進一點
訪問/出現(xiàn)404,說明沒有設置首頁,設置首頁
// 增加對首頁的支持,設置默認首頁為index.html if (pathname === "/") { pathname = pathname + "index.html"; }
完成后的文件如下
// 引入模塊 var http = require("http"); // http模塊 var fs = require("fs"); // fs 文件模塊 var url = require("url"); // url 統(tǒng)一資源定位符模塊 // 創(chuàng)建服務器 http.createServer((request, response) => { // 解析請求,保存進變量內(nèi) var pathname = url.parse(request.url).pathname; // 輸出請求的文件名 console.log(pathname); // 增加對首頁的支持,設置默認首頁為index.html if (pathname === "/") { pathname = pathname + "index.html"; } // 從文件系統(tǒng)中讀取文件,進行返回 fs.readFile(pathname.substr(1), (err, data) => { // 使用substr方法進行讀取文件的字節(jié),將文件名返回給回調(diào)函數(shù) if (err){ // 對錯誤進行處理 console.log(err); // 打印出錯誤 // 返回一個404 response.writeHead(404, {"Content-Type": "text/html; charset=utf-8"}); response.write("呀,什么都沒有╮(╯_╰)╭"); response.write("我猜你要的是 " + data + " ?"); response.end(); } else { // 返回 200 response.writeHead(200, {"Content-Type": "text/html; charset=utf-8"}); // 返回文件內(nèi)容 response.write(data.toString()); // 將讀取的文件內(nèi)容進行字符串化,并進行輸出 response.end(); // 關閉連接,發(fā)出數(shù)據(jù) }; }); }).listen(1937);使用node創(chuàng)建客戶端
PS C:UsersmingmDesktop est> node get.js302 Found 302 Found
nginx PS C:UsersmingmDesktop est>
var http = require("http"); // 請求的選項 var options = { // 創(chuàng)建一個對象保存相關數(shù)據(jù) host:"www.iming.info", // 主機地址 port:"443", // 訪問端口 method:"GET", path:"/", // 訪問的文件 }; // 處理響應的回調(diào)函數(shù) var callback = (response) => { // 更新數(shù)據(jù) var body = ""; response.on("data", (data) => { // 綁定事件,data body += data; }); response.on("end", () => { // 綁定end事件 console.log(body); }); }; // 開始發(fā)送請求 var req = http.request(options, callback); // 發(fā)送請求,options為發(fā)送請求的選項,callback為處理請求的回調(diào)函數(shù),將會有拋出三個事件一個data一個end,一個error,必須有end表示請求完畢,關閉連接 req.end(); // 關閉連接
由于小站使用的是nginx的https,使用了證書,需要使用驗證秘鑰的過程,所以拒絕訪問,302沒有權限
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96338.html
摘要:使用和構建通用應用演講者是來自的,他為我們介紹了怎么樣用和等技術,建立一個通用應用或者同構應用。開發(fā)者可以使用微信的測試號來測試域名沒備案也可以測。如何提前運用下一代技術提升性能和安全主講人是陳子舜。一個常見的前端面試題時代的性能 使用React、Redux和Node.js構建通用應用 演講者是來自Facebook的Stepan,他為我們介紹了怎么樣用Node和React、React-...
摘要:一旦替換已經(jīng)完成,該模塊將被完全棄用。用作錯誤處理事件文件,由在標準功能上的簡單包裝器提供所有模塊都提供這些對象。 Node.js簡介 Node 定義 Node.js是一個建立在Chrome v8 引擎上的javascript運行時環(huán)境 Node 特點 異步事件驅(qū)動 showImg(https://segmentfault.com/img/bVMLD1?w=600&h=237); no...
摘要:一簡介單點登錄,簡稱為,是目前比較流行的企業(yè)業(yè)務整合的解決方案之一??蛻舳藬r截未認證的用戶請求,并重定向至服務端,由服務端對用戶身份進行統(tǒng)一認證。三搭建客戶端在官方文檔中提供了客戶端樣例,即。 一、簡介 單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業(yè)業(yè)務整合的解決方案之一。SSO的定義是在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應用系...
摘要:本文就來說下這幾個字段的使用場景,以及同時存在這幾個字段時,他們之間的優(yōu)先級。當存在和這種同名不同后綴的文件時,或者是會優(yōu)先加載文件的?;蛘邇?yōu)先級是通過直接執(zhí)行腳本只有字段有效。 browser VS module VS main 前端開發(fā)中使用到 npm 包那可算是家常便飯,而使用到 npm 包總免不了接觸到 package.json 包配置文件。 那么這里就有...
閱讀 2547·2021-11-24 10:20
閱讀 2396·2021-09-10 10:51
閱讀 3382·2021-09-06 15:02
閱讀 3118·2019-08-30 15:55
閱讀 2843·2019-08-29 18:34
閱讀 3082·2019-08-29 12:14
閱讀 1219·2019-08-26 13:53
閱讀 2933·2019-08-26 13:43