nodejs的路由後新增處理函式

2021-06-20 05:50:47 字數 1763 閱讀 3170

路由,顧名思義,是指我們要針對不同的url有不同的處理方式。例如處理/start的「業務邏輯」就應該和處理/upload的不同。

在現在的實現下,路由過程會在路由模組中「結束」,並且路由模組並不是真正針對請求「採取行動」的模組,否則當我們的應用程式變得更為複雜時,將無法很好地擴充套件。

我們暫時把作為路由目標的函式稱為請求處理程式。現在我們不要急著來開發路由模組,因為如果請求處理程式沒有就緒的話,再怎麼完善路由模組也沒有多大意義。

requesthandlers的模組

應用程式需要新的部件,因此加入新的模組 -- 已經無需為此感到新奇了。我們來建立乙個叫做requesthandlers的模組,並對於每乙個請求處理程式,新增乙個佔位用函式,隨後將這些函式作為模組的方法匯出:

requesthandlers的模組,並對於每乙個請求處理程式,新增乙個佔位用函式,隨後將這些函式作為模組的方法匯出:

requesthandlers.js

function start()  

function upload()  

exports.start = start; 

exports.upload = upload; 

router模組

通過檢查給定的路徑對應的請求處理程式是否存在,如果存在的話直接呼叫相應的函式

router.js

function route(handle, pathname) else  

}  exports.route = route; 

server模組

處理請求模組

index模組

啟動模組,主模組

index.js

var server = require("./server"); 

var router = require("./router"); 

var requesthandlers = require("./requesthandlers"); 

//區分大小寫的  

var handle = {} 

handle["/"] = requesthandlers.start; 

handle["/start"] = requesthandlers.start; 

handle["/upload"] = requesthandlers.upload; 

server.start(router.route, handle); 

執行後效果

如果現在啟動應用(node index.js,始終記得這個命令列),隨後請求乙個url,我請求的分別是是http://localhost:8888/,http://localhost:8888/start,http://localhost:8888/start1,你將會看到應用輸出相應的資訊,這表明我們的http伺服器已經在使用路由模組了,並會將請求的路徑傳遞給路由,路由再找到對應的處理函式:

nodejs的路由控制製作

要求 當使用者訪問 student 1234567890 的查詢此學號的學生資訊。當使用者訪問 teacher 645433 的時候,查詢此老師的資訊。其他的,我們提示錯誤。如果位數不對,也是提示位數不對。substr函式來判斷此時的開頭 if userurl.substr 0,9 student ...

在VS2005如何刪除已新增的訊息處理函式

下午部門乙個同事問我 在vs 2005中如何刪除已經新增的訊息處理函式。她覺得在標頭檔案 訊息巨集和實現檔案中三處刪除乙個函式太麻煩了。對此我還真沒試過,vc 6.0我知道是在class wizard中刪除,在vs 2005中我已習慣在 中修改,還真沒試過。回家後摸索了一下,找到了,下面以刪除刪除檢...

在VS2005如何刪除已新增的訊息處理函式

下午部門乙個同事問我 在vs 2005中如何刪除已經新增的訊息處理函式。她覺得在標頭檔案 訊息巨集和實現檔案中三處刪除乙個函式太麻煩了。對此我還真沒試過,vc 6.0我知道是在class wizard中刪除,在vs 2005中我已習慣在 中修改,還真沒試過。回家後摸索了一下,找到了,下面以刪除刪除檢...