本文目錄一覽:
如何調試nodejs
Node Inspector 是一個可在webkit內核瀏覽器下進行nodejs調試的工具,其界面基本上跟chrome的調試工具一樣,使用非常方便。
首先在全局環境中安裝node inspector
[javascript] view plaincopy
npm install -g node-inspector
安裝完成之後,以調試模式運行需要調試的node代碼,比如
[javascript] view plaincopy
node –debug-brk app.js
這種方式會在代碼運行的時候,強制在第一行添加斷點
這時,會出現「debugger listening on port 5858」的提示
默認的埠是5858,也可以像這樣修改:
node –debug-brk[=3000] app.js
然後,啟動node-inspector,
[javascript] view plaincopy
node-inspector
(因為之前的nodejs代碼在運行,所以命令行窗口沒辦法輸入新的命令,所以啟動node-inspector需要新打開一個命令行窗口來輸入)
根據提示中的地址,打開
就可以看到,一個模擬Chrome調試窗口的頁面,載入了node中的所有代碼,具體的調試方式,就和Chrome一樣了。
還有一種方式是在代碼中需要添加斷點的地方,加入
[javascript] view plaincopy
debugger;
以下面這種方式運行
[javascript] view plaincopy
node –debug app.js
這樣代碼會運行到需要debugger的地方暫停。
nodeJS(前後端分離、優勢、不足
文章閱讀,來自 前端之巔 去哪兒網 部分摘錄
1.項目分離,頁面分離
第一種是項目分離,承載頁面分離。他的特點是簡單,快速,前端只關注瀏覽器方面,除瀏覽器端之外都是後端負責。
缺點 :
溝通成本高,前期,前端需要使用 ng 或者代理工具調試,後期,還要把頁面給到後端,並且新建一個對應的路由。
2.項目分離,只是後端的頁面,放到了前端項目里
後端只需要配置路由,最終上線時,由發布系統負責把前端中的頁面,自動同步到後端相應的目錄中。其中相應的目錄需要前後端提前約定,不然後端在渲染頁面的時候,就會找不到相應的文件。相比第一種方案,稍微有點進步。溝通成本會有一定的降低。
缺點 :
不過如果需要在頁面里做一些業務邏輯處理,還需要前端同學掌握和學習 velocity 語法,對於新同學而言看似掌握的了一門新語法,但實際操作起來並非想像中的流暢。
3.第三種方案是使用 Nodejs 作為頁面渲染層,後端只負責數據的生產工作
這也是目前階段主要的使用方式。它的優點是前端同學對於整個頁面的生命周期有完全的控制權,包括開發,調試,部署,上線以及後期的性能監控,應用監控等等。可做的事情也更多,比如使用 React SSR 做同構渲染。
缺點 :
對於前端同學的要求也會很高,除學習前端知識外,還要學習後端知識。
整個應用都是由前端統一負責,所以還需要接收報警電話或者簡訊,7*24 小時,都在待命狀態。
1.一些前端開發,只關注瀏覽器端,伺服器端開發關注很少,或者根本就不關注 ;
2.認為 Node.js 只適合開發一些工具類的功能,相對於後端開發來看它只是個玩具 ;
3.Node.js 的生態不如其他後端語言生態健全 ;
4.涉及到後端開發的知識面比較廣,在沒有這些基礎知識或者經驗積累的基礎上,考慮問題比較片面,最終做出的系統問題比較多,容易被後端鄙視 ;
看似問題很多,但實質上只有兩個原因,
1,自身知識儲備不夠。
2,對 Node.js 了解不深,不敢應用在生成環境中,即使應用到生產環境,一旦出現問題,不能快速及時的處理,導致高層認為還不如其他後端語言穩定,降低了我們的話語權。 (很中肯,不摸底,不敢用於項目)
1,提高開發效率,因為有了 Node 之後就不需要配置 Nginx 了,也不需要配置一些代理工具了,所有的頁面生命周期都是由前端統一去管理的,這時候不需要其他人進行合作。
2,降低溝通成本,除了介面格式外,不需要和後端進行交互了;
3,前後端職責也更為清晰,因為這時候,界限更為清晰了,後端只負責生產數據,它只提供數據就可以了,至於數據怎麼消費,以及怎麼用,都由前端去做;
4,可以同時使用 React SSR 技術,做到首屏渲染,提高用戶體驗,除了首屏之外,還可以做非同步的載入、SEO 等操作。
5,Node.js 可提供一些服務,不僅能讓我們使用,還可以對外使用,如 RESTful API,這樣就不用有求於後端了。
/———————————————文章摘錄結束————————————————-/
除了號稱nodejs界jQuery的express,
另外兩個比較不錯的
一個是 360 團隊的 Thinkjs ,
一個是阿里的 Eggjs
webstorm怎麼啟動nodejs的調試和伺服器
1.安裝:npm install -g node-inspector
2.啟動debug模式(單獨命令行):
node-debug (該命令默認8080埠)
node-debug –web-port 1984 (定義任意埠)
3.訪問chrome debug devTools
路徑如:;port=5858
4.啟動gulp或者grunt服務(具有gulp或者grunt任務時)
node –debug-brk $(which grunt) server (這種模式使用在第一次初始化執行的代碼)
node –debug $(which grunt) server(這種模式使用在初始化之後監聽的node代碼)
如何監控nodejs的event queue
第一步,在全局環境中安裝node inspector。第二步,安裝完成之後,以調試模式運行需要調試的node代碼。第三步,啟動node inspector。第四步,就可以看到,一個模擬Chrome調試窗口的頁面,載入了node中的所有代碼。
nodejs是單線程運行的,通過一個事件循環來循環取出消息隊列(event queue)中的消息進行處理,處理過程基本上就是去調用該消息對應的回調函數。
原創文章,作者:WSHH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143417.html