1. 程式人生 > >Node.js, Express的服務器搭建過程的問題

Node.js, Express的服務器搭建過程的問題

節點 順序 post 模塊化 回調地獄 模塊 調試 cheerio void

Node.js, Express的服務器搭建過程的問題

Express : node.js 的框架,根據2012年BYvoid的說法,是node.js官方唯一推薦的框架

怎麽搭建項目? - 安裝nodejs->npm->express - express 的問題:

2017年, express-generator已經被獨立成命令行工具了,所以要用 npm install express-generator 這樣才能用express命令

怎麽啟動項目?

啟動服務器可以用node app.js,因為app.js裝載了express模塊並且運行了必須的函數; 或者用npm start,它會讀取package.json執行命令

express框架的代碼: 會出現views, config, apps目錄

可能要用到的知識(語法)

一個網頁的代碼中會有一些地方需要js處理,或者處理DOM節點,要用ajax - jQuery - 框架的常見分層(比如路由、post) - express跟請求響應的方法 app.all、app.get、app.post, app.use

有人說all,get,post是三個別名,其實是扯淡,但是三個方法也真的差不多,它只是決定了get方法和post方法訪問某個url的時候對應的處理方法。但是這種設計是非常反常理而且看不出有多大意義的,不是很懂這種設計思想。一般情況下不應該是傳遞參數嗎? 但是另外的on和addEventListener倒是明顯地有問題了,這兩個函數完全相同,但是名字不一樣。反正都是當事件觸發的時候調用了函數。

註意中間件

目前為止不是很懂中間件和框架的關系。而且也不是很清楚框架跟http請求的順序,中間件的功能等等。

如果單純靠網上的代碼是比較難實現大型系統的。 要做好模塊化,盡量做好層次分級和可以配置。 大型系統的架構很復雜,可能還要有mongodb存儲。

在寫爬蟲的時候經常要等待防止被識別,可能會看到下面的方法,盡管如此這個是沒什麽用的,因為會大大降低效率,還不如用代理, - javascript代碼的setTimeOut(可以用來循環調用自身),這個是基礎js裏有的函數,但是看起來也是異步回掉函數。

回調函數

說到代理,剛剛看了語法感覺是只要在request方法裏改了http頭部的某個url就OK了?這個需要驗證。

在頁面解析方面: cheerio跟一般的jquery的語法相似,但是它是一個縮水版本(在cheerio的官網有說),比如祖先元素必須確定(用id)

Promise (可選外部模塊) 解決回調地獄 - .then函數=>用來解決回調地獄陷阱

其他設計缺陷

Node.js問題在哪裏? require不像C++一樣會對產生的命名沖突進行檢測, 當核心模塊(http, fs)跟其他模塊命名沖突時,優先加載核心模塊 - js的調試錯誤在瀏覽器的console是可以看的

visual studio code

在Visual Studio Code中是可以安裝Node.js的插件的。好處跟其他的語言一樣,在VS Code裏看代碼比較好看。

Node.js, Express的服務器搭建過程的問題