freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于nodejs的小型框架設(shè)計(jì)與實(shí)現(xiàn)-閱讀頁(yè)

2025-06-26 10:59本頁(yè)面
  

【正文】 交時(shí)要保存的清單中。如下圖所示 圖 Git 中的文件狀態(tài)變化周期如圖所示 。 圖 而 Git 關(guān)心的則是文件 數(shù)據(jù)的整體變化如圖 圖 git 總結(jié) 第 15 頁(yè) 共 62 頁(yè) Git 的設(shè)計(jì)顛覆了傳統(tǒng)版本控制的設(shè)計(jì)思想,對(duì)于文件控制的每環(huán)節(jié)的實(shí)現(xiàn)方式提供了新的設(shè)計(jì)方案。 javascrip 高級(jí)語(yǔ)言特性 是基于 javascript 設(shè)計(jì)的,因此框架在設(shè)計(jì)實(shí)現(xiàn)時(shí)需要大量運(yùn)用高級(jí)語(yǔ)言特性以此實(shí)現(xiàn)框架的可讀性和可復(fù)用性。正確使用作用域可以使代碼更清晰、易懂。 JavaScript 的作用域與常見(jiàn)的語(yǔ)言如 C、C++、 Java 等不同,它不是以花括號(hào)包圍的代碼塊作為作用域,而是已函數(shù)的定義范圍為作用域。例如下面代碼,在大多數(shù)類(lèi) C 的語(yǔ)言中會(huì)出現(xiàn)變量未定義的錯(cuò)誤,而在 JavaScript 中卻完全合法: if (true) { var somevar = 39。 } (somevar)。 全局作用域 在 JavaScript 中有一種特殊的對(duì)象稱(chēng)為 全局對(duì)象。由于全局對(duì)象的所有屬性在任何地方都是可見(jiàn)的,所以這個(gè)對(duì)象又稱(chēng)為 全局作用域。滿(mǎn)足以下條件的變量屬于全局作用域: 第 16 頁(yè) 共 62 頁(yè) 在最外層定義的變量; 全局對(duì)象的屬性; 任何地方隱式定義的變量(未定義直接賦值的變量)。這一點(diǎn)經(jīng)常被人遺忘,而模塊化編程的一個(gè)重要原則就是避免使用全局變量,所以我們?cè)谌魏蔚胤蕉疾粦?yīng)該隱式定義變量。在函數(shù)中引用一個(gè)變量時(shí), JavaScript 會(huì)先搜索當(dāng)前函數(shù)作用域,或者稱(chēng)為“局部作用域”,如果沒(méi)有找到則搜索其上層作用域,一直到全局作用域。:對(duì)于開(kāi)發(fā)者來(lái)說(shuō),在訪(fǎng)問(wèn)未定義的變量或定義了但沒(méi)有初始化的變量時(shí),獲得的值都是 undefined。 閉 包 閉包( closure)是函數(shù)式編程中的概念,出現(xiàn)于 20 世紀(jì) 60 年代,最早實(shí)現(xiàn)閉包的語(yǔ)言是 Scheme,它是 LISP 的一種方言。 閉包的嚴(yán)格定義是“由函數(shù)(環(huán)境)及其封閉的自由變量組成的集合體。 對(duì)象 第 17 頁(yè) 共 62 頁(yè) 提起面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,大多數(shù)人能夠立馬想到的是 C++、 Java 等強(qiáng)類(lèi)型語(yǔ)言, 以及 Python、 Ruby 等腳本語(yǔ)言,它們共有的特點(diǎn)是基于類(lèi)的面向?qū)ο?。雖然 JavaScript 沒(méi)有類(lèi),但 JavaScript 是面向?qū)ο蟮恼Z(yǔ)言。因?yàn)榻^大多數(shù)面向?qū)ο笳Z(yǔ)言中的對(duì)象都是基于類(lèi)的,所以容易混淆類(lèi)的實(shí)例與對(duì)象的概念。 JavaScript 中的對(duì)象是基于原型的。 JavaScript 具有函數(shù)式編程的特性, 所以函數(shù)也是一種變量,大多數(shù)時(shí)候不用與一般的數(shù)據(jù)類(lèi)型區(qū)分。使用關(guān)聯(lián)數(shù)組的好處是,在不知道對(duì)象的屬性名稱(chēng)的情況下,可以用變量來(lái)作為關(guān)聯(lián)數(shù)組的索引。 = 39。 obj[39。] = false JavaScript 提供了構(gòu)造函數(shù) 。 = age。 } } 以上是一個(gè)簡(jiǎn)單的構(gòu)造函數(shù),接下來(lái)用 new 語(yǔ)句來(lái)創(chuàng)建對(duì)象: 第 18 頁(yè) 共 62 頁(yè) var xiaomin = new User(39。,18)。 上下文對(duì)象 在 JavaScript 中, this 關(guān)鍵字代表語(yǔ)境環(huán)境的上下文,即被調(diào)用函數(shù)所處的環(huán)境。 JavaScript 的函數(shù)式編程特性使得函數(shù)可以像一般的變量一樣賦值、傳遞和計(jì)算,在 JavaScript 中,本質(zhì)上,函數(shù)類(lèi)型的變量是指向這個(gè)函數(shù)實(shí)體的一個(gè)引用,在引用之間賦值不會(huì)對(duì)對(duì)象產(chǎn)生復(fù)制行為。 在 JavaScript 中, call 和 apply 是兩個(gè)神奇的方法 .call 和 apply 的功能是以不同的對(duì)象作為上下文來(lái)調(diào)用某個(gè)函數(shù)。 call 和 apply 的功能是一致的,兩者細(xì)微的差別在于 call 以參數(shù)表來(lái)接受被調(diào)用函數(shù)的參數(shù),而 apply 以數(shù)組來(lái)接受被調(diào)用函數(shù)的參數(shù)。因?yàn)樵诮^大多數(shù)的面向?qū)ο笳Z(yǔ)言中,對(duì)象是基于類(lèi)的(例如 Java 和 C++ ),對(duì)象是類(lèi)實(shí)例化的 結(jié)果。 用了原型定義屬性和在構(gòu)造函數(shù)內(nèi)定義屬性的區(qū)別: ,子對(duì)象需要顯式調(diào)用父對(duì)象才能繼承構(gòu)造函數(shù)內(nèi)定義的屬性。 ,因?yàn)闃?gòu)造函數(shù)內(nèi)的局部變量對(duì)其中定義的函數(shù)來(lái)說(shuō)也是可見(jiàn)的。它們都是構(gòu)造函數(shù),用于生成 對(duì)象。 JavaScript 中的對(duì)象一般分為三類(lèi),它們分別是構(gòu)造函數(shù)對(duì)象,用戶(hù)創(chuàng)建的對(duì)象和原型對(duì)象。構(gòu)造函數(shù)對(duì)象指的是普通的構(gòu)造函數(shù),即通過(guò) new 調(diào)用生成普通對(duì)象的函數(shù)。這三類(lèi)對(duì)象中每一類(lèi)都有一個(gè) __proto__ 屬性,它指向該對(duì)象的原型,從任何對(duì)象沿著它開(kāi)始遍歷都可以追溯 到 。原型對(duì)象有 constructor 屬性,指向它對(duì)應(yīng)的構(gòu)造函數(shù)。屬性繼承的本質(zhì)就是一個(gè)對(duì)象可以訪(fǎng)問(wèn)到它的原型鏈上任何一個(gè)原型對(duì)象的屬性。它由GitHub 公司(曾稱(chēng) Logical Awesome)的開(kāi)發(fā)者 Chris Wanstrath、 PJ Hyett 和 Tom PrestonWerner 使用 Ruby on Rails 編寫(xiě)而成。據(jù) Git 用戶(hù)調(diào)查, GitHub 是最流行的 Git 存取站點(diǎn)。作為一個(gè)分布式的版本控制系統(tǒng),在 Git 中沒(méi)有主庫(kù)的概念,每一份復(fù) 制出的倉(cāng)庫(kù)都可以獨(dú)立使用,任何兩個(gè)倉(cāng)庫(kù)之間的差異都可以進(jìn)行合并到一起。與其他的代碼管理網(wǎng)站如 SourceFe 和 Google Code 提供的服務(wù)不同, GitHub 的獨(dú)特地方在于對(duì)項(xiàng)目進(jìn)行分支管理非常簡(jiǎn)單,具有很高的操作性。 Ubuntu 簡(jiǎn)介 第 20 頁(yè) 共 62 頁(yè) Ubuntu 是基于 Debian GNU/Linux,支持 x8 x64 和 ppc 架構(gòu),由全球化的專(zhuān)業(yè)開(kāi)發(fā)團(tuán)隊(duì)( Canonical Ltd)打造的開(kāi)源 GNU/Linux 操作系統(tǒng)。 由于開(kāi)源軟件越來(lái)越受歡迎,跟隨著開(kāi)源協(xié)議也越來(lái)越多。本框架也將作為開(kāi)源項(xiàng)目公布在 github 上。 下面簡(jiǎn)單介紹一下幾種常見(jiàn)的開(kāi)源協(xié)議以及它們適用的范圍。使用者可以自由的使用,修改源代碼,也可以將修改后的代碼作為開(kāi)源或者專(zhuān)有軟件再發(fā)布。 BSD 是對(duì)商業(yè)應(yīng)用非常友好的開(kāi)源協(xié)議。 Apache Licence Apache Licence 是著名的非盈利開(kāi)源組織 Apache 采用的協(xié)議。 Apache Licence 也是對(duì)商業(yè)應(yīng)用友好的許可。 GPL( GNU General Public License) GPL 的出發(fā)點(diǎn)是代碼的開(kāi)源 /免費(fèi)使用和引用 /修改 /衍 生代碼的開(kāi)源 /免費(fèi)使用,它不允許修改后和衍生的代碼做為非開(kāi)源的商業(yè)軟件進(jìn)行發(fā)布和盈利。 第 21 頁(yè) 共 62 頁(yè) GPL 協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用了具有 GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用 GPL 協(xié)議,既必須也是開(kāi)源和免費(fèi)。因此商業(yè)軟件或者對(duì)代碼有保密要求的軟件不適合使用采用了 GPL 協(xié)議的代碼庫(kù)。和 GPL 要求任何使用/修改 /衍生之 GPL 類(lèi)庫(kù)的的軟件必須采用 GPL 協(xié)議不同。這使得采用 LGPL協(xié)議的開(kāi)源代碼也可以被商業(yè)軟件作為類(lèi)庫(kù)引用并發(fā)布和銷(xiāo)售。因此商業(yè)軟件還是可以引用這些具有 LGPL 協(xié)議的代碼庫(kù)。 2.. MIT MIT 是和 BSD 一樣寬松的許可協(xié)議 ,為保留作者的版權(quán)歸屬 ,沒(méi)有任何其他限制 .也就是說(shuō) ,一旦使用 MIT 相關(guān)的代碼庫(kù),那么在新的代碼中也必須包含原許可協(xié)議的聲明。 打 開(kāi) 官 方 下 載 地 址 ,獲取系統(tǒng)相應(yīng)的安裝包,由于我們使用的是 Ubuntu系統(tǒng)所以選擇 的源代碼進(jìn)行編譯安裝。用終端進(jìn)入解壓后的文件夾。如下圖所示: 圖 圖 安裝完成后可以運(yùn)行命令 node v 來(lái)查看當(dāng)前 的版本,然后運(yùn)行 node 進(jìn)入到即時(shí)運(yùn)行狀態(tài) 輸入輸入代碼 (“ Hello world” )。如下 第 23 頁(yè) 共 62 頁(yè) 圖所示。下載安裝包 Windows Intaller(msi)。驗(yàn)證過(guò)程同 Ubuntu。 第 24 頁(yè) 共 62 頁(yè) 第三章 框架的設(shè)計(jì)與實(shí)現(xiàn) FastJsonWeb 作為以一個(gè)小型 MVC 框架,用來(lái)實(shí)現(xiàn)一般的小型高并發(fā)系統(tǒng),從實(shí)際需求角度出發(fā)應(yīng)該具備以下功能: ( 1)路由映射功能。 ( 2) Cookie 功能。 ( 3) Seesion 功能。 (4) 屬性注入功能。 ( 5)橫向切面請(qǐng)求攔截功能:在請(qǐng)求數(shù)據(jù)到達(dá)業(yè)務(wù)邏輯前完成對(duì)請(qǐng)求數(shù)據(jù)的初步處理,排除非法請(qǐng)求等。 硬件環(huán)境 ( 1) CPU : Inter Core I3 ( 2)內(nèi)存: 4G DDR1333M ( 3)主板: H55 ( 4)硬盤(pán): 160G 軟件環(huán)境 (1)操作系統(tǒng): Ubuntu 第 25 頁(yè) 共 62 頁(yè) (2) 開(kāi)發(fā)工具: Vim,git (3)瀏覽器 : Chrome 圖 主要流程是: 客戶(hù)端發(fā)送請(qǐng)求到服務(wù)端,服務(wù)端口監(jiān)聽(tīng)到客戶(hù)端的請(qǐng)求后將請(qǐng)求傳遞給請(qǐng)求橫向切面攔截器。路由分發(fā)器根據(jù)相關(guān)配置判斷請(qǐng)求的屬性是業(yè)務(wù)數(shù)據(jù)請(qǐng)求還是靜態(tài)資源請(qǐng)求,傳遞給相應(yīng)的處理類(lèi)。如果是業(yè)務(wù)數(shù)據(jù)請(qǐng)求,則根據(jù)路由規(guī)則轉(zhuǎn)發(fā)給相應(yīng)的業(yè)務(wù)邏輯對(duì)象處理。 第 26 頁(yè) 共 62 頁(yè) 服務(wù)端監(jiān)聽(tīng)示意圖 圖 主要流程: 當(dāng)服務(wù)端監(jiān)聽(tīng)都客戶(hù)端數(shù)據(jù)請(qǐng)求時(shí)講數(shù)據(jù)請(qǐng)求轉(zhuǎn)發(fā)給橫向切面請(qǐng)求攔截器。若為靜態(tài)資源,則讀取資源返回客戶(hù)端。經(jīng)過(guò)一系列攔截器處理后,若數(shù)據(jù)請(qǐng)求流程依然存在,則從請(qǐng)求數(shù)據(jù)數(shù)據(jù)中解析出請(qǐng)求參數(shù)然后合成對(duì)象,傳給路由分發(fā)器。 Cookie 示意圖 圖 主要功能: 從 頭信息中解析 cookie 數(shù)據(jù)封裝成數(shù)據(jù)對(duì)象提供統(tǒng)一的設(shè)置和獲取方法 第 31 頁(yè) 共 62 頁(yè) 寫(xiě)入 response 頭信息中,返回客戶(hù)端。然后根據(jù)當(dāng)前系統(tǒng)時(shí)間判斷該 Session 數(shù)據(jù)對(duì)象是否過(guò)期,如果過(guò)期則清空該數(shù)據(jù)對(duì)象。最后返 回該數(shù)據(jù)對(duì)象。同過(guò)基礎(chǔ)框架的畫(huà)圖說(shuō)明詳細(xì)介紹了各個(gè)功能實(shí)現(xiàn)細(xì)節(jié),以及數(shù)據(jù)流程。這一章來(lái)介紹如果快速使用 FastJsonWeb 以及主要的 API 文檔。 FastJsonWeb 文件目錄介紹 基本文件包括: 圖 其中 主要處理 Cookie 相關(guān)數(shù)據(jù)數(shù)據(jù)。 路由轉(zhuǎn)發(fā)功能 系統(tǒng)入口。 主要處理 Session 相關(guān)數(shù)據(jù) 靜態(tài)資源處理類(lèi) FastJsonWeb 的 API 說(shuō)明及使用說(shuō)明 構(gòu)造函數(shù): Cookie(request,response) 參數(shù)說(shuō)明: request: HttpRequest 對(duì)象 response:HttpResponse 對(duì)象 公開(kāi)方法: (key,value) 功能說(shuō)明: 設(shè)置一個(gè) Cookie 鍵值對(duì)。 在 cookie 作為某個(gè)值的索引 value : 數(shù)據(jù)類(lèi)型 String。 在 cookie 作為某個(gè)值的索引 返回值: 若 cookie數(shù)據(jù)對(duì)象中存在 key對(duì)應(yīng)的值則返回該值,否則返回 undefined () 功能說(shuō)明: 獲取當(dāng)前的 Session 數(shù)據(jù)對(duì)象的 sid 參數(shù)說(shuō)明: 無(wú) 返回值: 若當(dāng)前 cookie 數(shù)據(jù)對(duì)象中存在 sid 則返回該 sid,否則返回 undefined (sid) 功能說(shuō)明: 在 Cookie 數(shù)據(jù)對(duì)象中存儲(chǔ) sid 的值(該方法不建議自己調(diào)用) 參數(shù)說(shuō)明: sid:當(dāng)前 session 對(duì)象的 sid 值 返回值: 無(wú) () 功能說(shuō)明: 將 Cookie 數(shù)據(jù)對(duì)象寫(xiě)入到 response 返回?cái)?shù)據(jù)中 參數(shù)說(shuō)明: 無(wú) 返回值: 第 37 頁(yè) 共 62 頁(yè) 無(wú) 使用說(shuō)明:在文件頭部通過(guò) var cookie = required(“ ./cookie” )獲取 cookie對(duì)象 object 數(shù)據(jù)對(duì)象。若有特殊資源類(lèi)型需要。 使用說(shuō)明: 一般不需要自行引用。 相關(guān)說(shuō)明及使用: (1) 功能說(shuō)明: 配置 404 錯(cuò)誤路徑訪(fǎng)問(wèn)的處理類(lèi) 舉例: = require(39。)。該文件夾下的所有文件將已靜態(tài)資源數(shù)據(jù)的形式返回到客戶(hù)端。 所有訪(fǎng)問(wèn) 根目錄下的 pulic 文件夾下的資 源 的 url 數(shù)據(jù)請(qǐng)求將已靜態(tài)資源文件形式返回 功能說(shuō)明: 第 38 頁(yè) 共 62 頁(yè) 配置業(yè)務(wù)邏輯處理對(duì)象與 url 地址的映射 舉例: ={ 39。:require(39。), 39。: require(39。), }。監(jiān)聽(tīng)數(shù)據(jù)請(qǐng)求。 如: (onRequest).listen(8888
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1