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

正文內(nèi)容

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

2024-09-04 18:06本頁面
  

【正文】 監(jiān)聽 8888 端口 : Session(request,response) 參數(shù)說明: request: HttpRequest 對象 response:HttpResponse 對象 setValue(key,value) 。 可通過 listen 函數(shù)的參數(shù)設(shè)置監(jiān)聽端口號(hào)。 當(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 頁 共 62 頁 功能說明: 獲取某個(gè)索引的 Cookie 值 參數(shù)說明: key: 數(shù)據(jù)類型 String。 參數(shù)說明: key: 數(shù)據(jù)類型 String??膳渲帽O(jiān)聽端口。 橫向切面請求攔截器 第 33 頁 共 62 頁 靜態(tài)資源類型的 MIME 值 實(shí)現(xiàn)屬性注入的功能類 請求映射的配置類。 下載 FastJsonWeb. 使用 git工具 運(yùn)行 git clone :huyinghuan/ 獲 取 到 最 新 的FastJsonWeb 版本。 第 32 頁 共 62 頁 第四章 核心功能使用 上一章節(jié)主要說明了 FastJsonWeb 的框架和功能設(shè)計(jì)。 本章小結(jié) 本章簡單介紹了 FastJsonWeb 框架的功能設(shè)計(jì)。如果沒有過期。 Session 示意圖 第 30 頁 共 62 頁 圖 主要流程: 從 request 中同 Cookie 對象提取 sid,在內(nèi)存中找到 sid 所對應(yīng)的 Seesion 數(shù) 第 31 頁 共 62 頁 據(jù)對象。 路由分發(fā)器示意圖 第 27 頁 共 62 頁 圖 主要流程: 接收從攔截器傳遞過來的 數(shù)據(jù)對象,從 request 請求書就在解析出請求路徑,根據(jù)加載的路由配置找到相 應(yīng)的業(yè)務(wù)邏輯對象,然后解析出相應(yīng)的請求方法,將數(shù)據(jù)對象設(shè)置成為業(yè)務(wù)邏輯的上下文,調(diào)用方法,經(jīng)處理后的數(shù)據(jù)以 json 形勢返回給 第 28 頁 共 62 頁 客戶端。若非靜態(tài)資源請求,則加載請求攔截器的配置,將請求按順序傳給攔截器。 橫向切面請求攔截器示意圖 第 25 頁 共 62 頁 圖 第 26 頁 共 62 頁 主要流程: 從服務(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ā)平臺(tái)和一些高級(jí)語言特點(diǎn),另外介紹了一下本框架所采用的開源協(xié)議和如何搭建 開發(fā)環(huán)境。下載完成后雙擊運(yùn)行該文件,一步一步按提示操作即可。 圖 上面介紹 的是 Ubuntu 下的 安裝, window 下的安裝更加簡單。檢查 node 是否運(yùn)行正常。依次運(yùn)行 ./configure make 第 20 頁 共 62 頁 sudo make install 其中第二步可能會(huì)花費(fèi)一些時(shí)間。所以下載 Source Code. 下載后將壓縮包解壓。 開發(fā)環(huán)境搭建 獲取 安 裝 包 。 GPL/LGPL 都保障原作者的知識(shí)產(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 頁 共 62 頁 有函數(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 的語言,由一對花括號(hào)封閉的代碼塊就是一個(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 語句中的花括號(hào)不是獨(dú)立的作用域。value39。這個(gè)特性被大多數(shù)人忽視并誤解,從而導(dǎo)致了非常多的莫名其妙的錯(cuò)誤。作用域可以減少命名沖突,而且作用域是垃圾回收的基本單元。下面介紹 javascript 的相關(guān)語言特性 變量的作用域 結(jié)構(gòu)化編程語言中的一個(gè)重要概念是作用域,變量的可見范圍和 生命周期就是由作用域所決定。 Git 實(shí)際上可以看做一個(gè)文件系統(tǒng),不過對比普通文件系統(tǒng)它顯得非常小巧而已。 第 12 頁 共 62 頁 圖 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ā)平臺(tái)。 第 8 頁 共 62 頁 第二章 開
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1