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

來源:互聯網
上載者:User

標籤:系統   lock   非同步   javascrip   驗證   url   比較   mis   代碼   

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的伺服器搭建過程的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.