Node Connect 及其中介軟體的理念相當好

2021-06-20 05:28:45 字數 1227 閱讀 7491

好到有種相見恨晚的感覺,呵呵。connect 所謂的中介軟體思想,可謂不新鮮。但是於 node 上面使用,卻是第乙個吃螃蟹的人,以致今日,有為數不少的第三方中介軟體。套一句俗話,充分利用好這些中介軟體,能讓你的工作事半功倍,呵呵。

這種中介軟體思想,簡直就是抓住了 web server 七尺之喉,把關 request / response,既清晰又靈活,好處十分明顯。connect 約定一種規範,把所有參與進來的中介軟體構成乙個佇列,中介軟體之間的執行遵循 connect 約定的介面。這樣的流程最後,必定是 response.end() 的。也就是說最終輸出有且只有乙個。當然「最終輸出」也不一定放在最後的,如日誌到檔案則可以放在 response.end() 之後。我跟大家說的,就是乙個流程的意思、一道工序的意思。所以,你把要使用的中介軟體放在佇列的哪個位置,就有所考究了。在前面的可能因為某些條件限制了後面的執行。

.use(connect.logger('dev'))

.use(function(req, res))

.use('/***', function(request, response));

不過值得一提的是,connect 的中介軟體佇列與所謂的非同步、同步執行無關。非同步/同步取決於你邏輯的封裝如何。有非同步的,那 connect 的中介軟體必然非同步執行。當然,從輪廓上說,connect 的鏈式呼叫像同步的方式。

我感興趣的 connect 或者說打算從 connect 的功能: session 和其他的相關第三方元件。其實這些功能元件憑自己寫也不是難事,至少 asp jscrpt 我寫過相當部分~不過就是花時間啦。

跟 connect 還有點淵源的就是這位仁兄出自 sencha l.l.c 的,ext js 粉在此膜拜~

說到 connect 就不得不提下面相關資源:《connect模組解析(之一)》、《connect模組解析(之二)靜態檔案中介軟體》、《connect原始碼分析--基礎架構》。

用法:像 asp/php/jsp 這樣的則屬於動態網頁,查詢資料和呼叫 ejs 渲染模板,否則,將是呼叫靜態伺服器:

var siteroot = 'c:/project/yueyun/root';

connect.static(siteroot)(request, response, function(){});

p.s:node-sqlite3 win下面終於帶驅動包了,不用自己編譯~適合我此等的小白。直接下:

npm 新版可解決此難題

原來這種中介軟體的理念就是 pipeline!詳見:

Redis集群及其中間遇到的坑

進入redis目錄下make make install 可能會報錯 bin sh cc 未找到命令 make 1 adlist.o 錯誤 127原因是沒有gcc,安裝gcc就好yum install gcc 建議下版本高一點的 將 opt redis 4.0.0 src redis trib.rb複...

自連線及其中嵌子查詢

自連線查詢角色資訊及其父角色 var result from r1 in edatacontext.role join r2 in edatacontext.role on r1.parentroleid equals r2.roleid where r1.isdeleted false selec...

HttpModule及其中的事件的執行順序

httpmodule執行的順序取決於web.config配置httpmodule的順序,而httpmodule中事件的執行先後順序與asp.net執行機制相關,具體執行順序如下 beginrequest authenticaterequest authorizerequest resolverequ...