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

正文內(nèi)容

基于nodejs的小型框架設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(參考版)

2025-03-02 09:12本頁面
  

【正文】 監(jiān)聽 8888 端口 : Session(request,response) 參數(shù)說明: request: HttpRequest 對象 response:HttpResponse 對 象 setValue(key,value) 功能說明。 可通過 listen 函數(shù)的參數(shù)設(shè)置監(jiān)聽端口號。 當(dāng)訪問路徑是 localhost:8xxx/時(shí),將會(huì)將數(shù)據(jù)處理請求傳給 action 文件夾下的 業(yè)務(wù)邏輯處理對象;當(dāng)訪問對象是 localhost:8xxx/index 時(shí) 數(shù)據(jù)處理請求 將傳給 action 文件夾下的 業(yè)務(wù)邏輯處理對象 功能說明: 系統(tǒng)入口。./action/index39。/index39。./action/index39。/39。一般放置 html,js,css,圖片等靜態(tài)資源 舉例: = /public。 (2) 功能說明: 配置靜態(tài)資源所在文件夾。./action/nopath39。 url 路徑映射??梢园凑崭袷阶孕行薷呐渲?。其中配置了一些常見的靜態(tài)資源類型。 需要存儲(chǔ)在 cookie 中的值 返回值: 無 (key) 第 34 頁 共 63 頁 功能說明: 獲取某個(gè)索引的 Cookie 值 參數(shù)說明: key: 數(shù)據(jù)類型 String。 參數(shù)說明: key: 數(shù)據(jù)類型 String??膳渲帽O(jiān)聽端口。 橫向切面請求攔截器 第 33 頁 共 63 頁 靜態(tài)資源類型的 MIME 值 實(shí)現(xiàn)屬性注入的功能類 請求映射的配置類。 下載 FastJsonWeb. 使用 git 工具 運(yùn)行 git clone :huyinghuan/ 獲 取 到 最 新 的FastJsonWeb 版本。 第 32 頁 共 63 頁 第四章 核心功能使用 上一章節(jié)主要說明了 FastJsonWeb 的框架和功能設(shè)計(jì)。 本章小結(jié) 本章簡單介紹了 FastJsonWeb 框架的功能設(shè)計(jì)。如果沒有過期。 Session 示意圖 第 30 頁 共 63 頁 圖 主要流程: 從 request 中同 Cookie 對象提取 sid,在內(nèi)存中找到 sid 所對應(yīng)的 Seesion 數(shù) 第 31 頁 共 63 頁 據(jù)對象。 路由分發(fā)器示意圖 第 27 頁 共 63 頁 圖 主要流程: 接收從攔截器傳遞過來的 數(shù)據(jù)對象,從 request 請求書就在解析出請求路徑,根據(jù)加載的路由配置找到相應(yīng)的業(yè)務(wù)邏輯對象,然后解析出相應(yīng)的請求方法,將數(shù)據(jù)對象設(shè)置成為業(yè)務(wù)邏輯的上下文, 調(diào)用方法,經(jīng)處理后的數(shù)據(jù)以 json 形勢返回給 第 28 頁 共 63 頁 客戶端。若非靜態(tài)資源請求,則加載請求攔截器的配置,將請求按順序傳給攔截器。 橫向切面請求攔截器示意圖 第 25 頁 共 63 頁 圖 第 26 頁 共 63 頁 主要流程: 從服務(wù)端接收 到轉(zhuǎn)發(fā)過來的請求,所以根據(jù)配置信息判斷請求的是否為靜態(tài)資源。處理完成之后將數(shù)據(jù)轉(zhuǎn)成 json 格式回傳給客戶端。如果為靜態(tài)資源請求則讀取靜態(tài)資源返回給客戶端。通過對請求數(shù)據(jù)的分析過濾和 加工請求數(shù)據(jù),然后將請求傳遞給下一層的路由分發(fā)器。 (6) 動(dòng)態(tài)方法調(diào)用:在 url 中根據(jù)規(guī)則調(diào)用 同一個(gè)業(yè)務(wù)邏輯對象中的指定方法。將表單數(shù)據(jù)解析成 javascript 對象注入到相應(yīng)的業(yè)務(wù)邏輯實(shí)現(xiàn)中。通過 Cookie 實(shí)現(xiàn) Session 會(huì)話,在整個(gè)會(huì)話過程中保存少量數(shù)據(jù)。滿足某些數(shù)據(jù)需要存儲(chǔ)在客戶端瀏覽器的需要。能夠?qū)⒉煌愋偷恼埱笥成涞讲煌臉I(yè)務(wù)邏輯上,其中應(yīng)該包括靜態(tài)資源數(shù)據(jù)請求和業(yè)務(wù)數(shù)據(jù)請求的分發(fā)。 本章小結(jié) 該章簡單的介紹了 FastJsonWeb 框架設(shè)計(jì)與實(shí)現(xiàn)過程中使用到的設(shè)計(jì)開發(fā)工具,開發(fā)平臺和一些高級語言特點(diǎn),另外介紹了一下本框架所采用的開源協(xié)議和如何搭建 開發(fā)環(huán)境。下載完成后雙擊運(yùn)行該文件,一步一步按提示操作即可。 圖 上面介紹的是 Ubuntu 下的 安裝, window 下的安裝更加簡單。檢查 node 是否運(yùn)行正常。依次運(yùn)行 ./configure make 第 20 頁 共 63 頁 sudo make install 其中第二步可能會(huì)花費(fèi)一些時(shí)間。所以下載 Source Code. 下 載后將壓縮包解壓。 開發(fā)環(huán)境搭建 獲取 安 裝 包 。 GPL/LGPL 都保障原作者的知識產(chǎn)權(quán),避免有人利 用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品。 一旦選擇修改 LGPL 協(xié)議的代碼或者衍生,那么所有修改后的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用 LGPL 協(xié)議。 LGPL 允許商業(yè)軟件通過類庫引用 (link)方式使用 LGPL 類庫而不需要開源商業(yè)軟件的代碼。 LGPL( GNU Lesser General Public License) LGPL 是 GPL 的一個(gè)為主要為類庫使用設(shè)計(jì)的開源協(xié)議。采用 GPL 協(xié)議的產(chǎn)品既可以作為單獨(dú)的產(chǎn)品使用還可以享受享受免費(fèi)的優(yōu)勢。操作系統(tǒng)中 Linux 就是采用了 GPL。使用者也可以在需要的時(shí)候修改代碼來滿足需要并作為開源或商業(yè)產(chǎn)品發(fā)布 /銷售。該協(xié)議和 BSD類似,同樣鼓勵(lì)代碼共享和尊重原作者的著作權(quán),同樣允許代碼修改,再發(fā)布(作為開源或商業(yè)軟件)。這表現(xiàn)在兩個(gè)方面,第一 BSD 運(yùn)行使用對其修改后重新發(fā)布,第二,可以在 BSD 代碼的基礎(chǔ)上進(jìn)行商業(yè)軟件開發(fā) 并且進(jìn)行銷售。 BSD 協(xié)議鼓勵(lì)代碼共享,但需要尊重代碼作者的著作權(quán)。 BSD 開源協(xié)議 BSD 開源協(xié)議是一個(gè)自由非常大的協(xié)議。 因此本框架采用的是 LGPL( GNU Lesser General Public License)開源協(xié)議。常見的 OSI 批準(zhǔn)的開源協(xié)議有 BSD, GPL, LGPL,。 Ubuntu 的目標(biāo)在于為一般用戶提供一個(gè)穩(wěn)定的安全的主要由自由軟件構(gòu)建而成的操作系統(tǒng),讓用戶可以擺脫對 Windows 操作系統(tǒng)的依賴。如果需要為一個(gè)項(xiàng)目貢獻(xiàn)代碼也是一件容易的事情︰首先點(diǎn)擊項(xiàng)目站點(diǎn)的“ fork”的按 鈕,然後將代碼檢出并將修改加入到剛才分出的代碼庫中,最後通過內(nèi)建的“ pull request”機(jī)制向項(xiàng)目負(fù)責(zé)人申請代碼合并即可。 GitHub 可以托管各種 git 庫,并提供統(tǒng)一 web界面。 GitHub 提供個(gè)人信息庫和 Wiki 網(wǎng)頁,通過一個(gè) git 版本庫即可對這些頁面進(jìn)行編輯。 GitHub 同時(shí)提供付費(fèi)賬戶和為開源項(xiàng)目提供的免費(fèi)賬戶。 GitHub 簡介 GitHub 是一個(gè)用于使用 Git 版本控制系統(tǒng)項(xiàng)目的共享虛擬主機(jī)服務(wù)。在 JavaScript 中,繼承是依靠一套叫做原型鏈( prototype chain)的機(jī)制實(shí)現(xiàn)的。構(gòu)造函數(shù)對象有 prototype 屬性,指向一個(gè)原型對象,通過該構(gòu)造函數(shù)創(chuàng)建對象時(shí),被創(chuàng)建對象的 __proto__ 屬性將會(huì)指向構(gòu)造函數(shù)的 prototype 屬性。原型對象特指構(gòu)造函數(shù) prototype 屬性指向的對象。用戶創(chuàng)建的對象,即用 new 語句顯式構(gòu)造的對象。 是所有對象的祖先, 是所 第 17 頁 共 63 頁 有函數(shù)的原型,包括構(gòu)造函數(shù)。 JavaScript 中有兩個(gè)特殊的對象: Object 與 Function。 ,包括函數(shù)在內(nèi)都會(huì)被重復(fù)創(chuàng)建,同一個(gè)構(gòu)造函數(shù)產(chǎn)生的兩個(gè)對象不共享實(shí)例。而在JavaScript 語言中,沒有類的概念。 原型 原型是 JavaScript 面向?qū)ο筇匦灾兄匾母拍?。簡而言之,就是允許一個(gè)對象去調(diào)用另一個(gè)對象的成員函數(shù)??梢酝ㄟ^函數(shù)的任何一個(gè)引用調(diào)用這個(gè)函數(shù),不同之處僅僅在于上下文。上下文對象的作用是在一個(gè)函數(shù)內(nèi)部引用調(diào)用它的對象本身, JavaScript 的任何函數(shù)都是被某個(gè)對象調(diào)用的,包括全局對象,所以 this 指針是一個(gè)非常重要的東西。 然后就可以通過 someuser 來訪問這個(gè)對象的屬性和方法了。byvoid39。 = function() { ()。如: function User(name, uri) { = name。prop_239。bar39。如:以下定義都是有效的 var obj = {}。在 JavaScript 中,使用句點(diǎn)運(yùn)算符和關(guān)聯(lián)數(shù)組引用是等價(jià)的,也就是說任何對象(包括 this 指針)都可以使用這兩種模式。 創(chuàng)建和訪問 JavaScript 中的對象實(shí)際上就是一個(gè)由屬性組成的關(guān)聯(lián)數(shù)組,屬性由名稱和值組成,值 的類型可以是任何 數(shù)據(jù)類型,或者函數(shù)和其他對象。對象就是類的實(shí)例,這在大多數(shù)語言中都沒錯(cuò),但在 JavaScript 中卻不適用。 JavaScript 只有對象,對象就是對象,不是類的實(shí)例。而說到 JavaScript,很少能讓人想到它面向?qū)ο蟮奶匦?,因?yàn)樗鼪]有類。” 閉包有兩個(gè)主要用途,一是實(shí)現(xiàn)嵌套的回調(diào)函數(shù),二是隱藏對象的細(xì)節(jié)。之后閉包特性被其他語言廣泛吸納??梢哉J(rèn)為無論在函數(shù)內(nèi)什么地方定義的變量,在一進(jìn)入函數(shù)時(shí)就被定義了,但直到 var 所在的那一行它才被初始化,所以在這之前引用到的都是 undefined 值。 JavaScript 的函數(shù)定義是可以嵌套的,每一層是一個(gè)作用域,變量搜索順序是從內(nèi)到外。 函數(shù)作用域 不同于大多數(shù)類 C 的語言,由一對花括號封閉的代碼塊就是一個(gè)作用域,JavaScript 的作用域是通過函數(shù)來定義的,在一個(gè)函數(shù)中定義的變量只對這個(gè)函數(shù)內(nèi)部可見,我們稱為函 數(shù)作用域。 需要格外注意的是第三點(diǎn),在任何地方隱式定義的變量都會(huì)定義在全局作用域中,即不 通過 var 聲明直接賦值的變量。全局作用域中的變量不論在什么函數(shù)中都可以被直接引用,而不必通過全局對象。這個(gè)對象在 對應(yīng)的是 global 對象,在瀏覽器中對應(yīng)的是 window 對象。 // 輸出 value 這是因?yàn)? JavaScript 的作用域完全是由函數(shù)來決定的, if、 for 語句中的花括號不是獨(dú)立的作用域。value39。這個(gè)特性被大多數(shù)人忽視并誤解,從而導(dǎo)致了非常多的莫名其妙的錯(cuò)誤。作用域可以減少命名沖突,而且作用域是垃圾回收的基本單元。下面介紹 javascript 的相關(guān)語言特性 變量的作用域 結(jié)構(gòu)化編程語言中的一個(gè)重要概念是作用域,變量的可見范圍和 生命周期就是由作用域所決定。 Git實(shí)際上可以看做一個(gè)文件系統(tǒng),不過對比普通文件系統(tǒng)它顯得非常小巧而已。 第 12 頁 共 63 頁 圖 Git 與其他版本控制系統(tǒng) Git 和其他版本控制系統(tǒng)的主要差別在于,其他版本控制系統(tǒng)只關(guān)心文件內(nèi)容發(fā)生的差異變化,如圖 。因此用 Git 管理項(xiàng)目工程時(shí)時(shí),代碼文件在三個(gè)工作區(qū)域內(nèi)循環(huán)存在,它們分別是: Git 的工作目錄,暫存區(qū)域,以及本地倉庫。每一個(gè)文件都只有存在三種狀態(tài):已提交,已修改和已暫存。它不同于其他的版本控制器,如 svn, cvs 等之類的,它具有速度快、設(shè)計(jì)簡單、對非線性開發(fā)模式支持強(qiáng)(允許上千個(gè)并行開發(fā)的分支)、完全分布式、能高效管理超大規(guī)模工程項(xiàng)目(速度和數(shù)據(jù)量)等。 Git 介紹 Git 也是眾多版本控制系統(tǒng)中的一員。一旦使用版本控制系統(tǒng)關(guān)于工程,那么不管整個(gè)項(xiàng)目中的 文件如何改動(dòng)刪除,最后也可以完整的恢復(fù)原來的某個(gè)版本。版本控制系統(tǒng)的好處在于它可以將一個(gè)或者多個(gè)代碼文件恢復(fù)到以前的某個(gè)狀態(tài),不僅如此它還可以將整個(gè)工程都回溯到過去的某個(gè)時(shí)間點(diǎn)。程序員經(jīng)常需要保存系統(tǒng)代碼的所有修訂版本用來查找 bug。能夠大大加強(qiáng)對代碼的掌握程度。 運(yùn)用各種插件幾乎能提供所有 IDE 所具備的功能。其中插入模式和命令模式之間無法直接轉(zhuǎn)換。但對普通用戶而言 ,順序?qū)?、設(shè)置字體格式、翻頁讀多于隨機(jī)寫刪除操作 , 且每個(gè)動(dòng)作之間本身就有很多的停頓 ,用其他 UI 編輯器(word,notePad++等 )效率反而比 VIM 高效 ,使用 vim 進(jìn)行操作只會(huì)徒增代碼編寫的難度。 vim 針對程序語言代碼編寫者。例如普通模式命令 dd刪除當(dāng)前行, dj代表刪除下一行 ,因?yàn)槭堑谝粋€(gè) d含義是刪除 ,j鍵代表移動(dòng)到下一行 ,組合后 dj刪除當(dāng)前行和下一行。命令組合 : Vim 強(qiáng)大的編輯能力中很大部分是來自于其普通模式命令。 設(shè)計(jì)理念 vim 的設(shè)計(jì)理念是組合。具有代碼補(bǔ)全、終端編譯及錯(cuò)誤跳轉(zhuǎn)等提供編程效率的功能。除此以外,還將介紹在 Ubutun 下如何搭建 開發(fā)平臺。 第 8 頁 共 63 頁
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1