前言
學了Nodejs一天了,這種異步非阻塞式的編程模型仿佛一下子打破了我的思維模式,總有一種根本不會編程的感覺。不過從中也確實讓我獲得了很多寶貴的經(jīng)驗。
這里暫且記錄一下學習過程中遇到的一些實用的庫吧,給自己一個紀念。
工具列表
supervisor
之前寫Python的Flask或者Django的時候,一旦修改了源代碼,后臺調(diào)試服務器就會自動檢測到變化,然后restart。所以可以直接在瀏覽器上直接刷新看到最新的結果。而寫了一點點Node代碼的我發(fā)現(xiàn)每次都必須先CTRL C,然后重新運行服務器端代碼,才能看到最新的結果。
Nodejs只有在第一次引用到某部分時才回去解析腳本,以后都會直接訪問內(nèi)存中解析好的腳本文件內(nèi)容。
這在一定程度上確實提高了性能,但是開發(fā)的時候真的不是一個好做法。幸好supervisor就是專門用來解決這個問題的。
安裝
npm install -g supervisor11
使用
supervisor XX.js11
其實就是對node的一個包裝。比如我寫了一個簡單的服務器程序sample.js。
let http = require(\”http\”);function handle_request(req, res) {
正常運行的話是
node sample.js11
但是這樣不能實時檢測到腳本文件的變化,這時就可以讓supervisor出場了。
supervisor sample.js11
命令本身也會給我們很多提示性的內(nèi)容。
Starting child process with \’node sample.js\’Watching directory \’E:CodeNodejslearntools\’ for changes.
不難看出,supervisor啟動了一個子進程來處理node腳本,然后本身檢測文件變化,實時做處理。
rs命令代表著restarting,即我們可以手動的讓服務器腳本重新啟動。
node-inspector
調(diào)試代碼的一款比較好用的在線調(diào)試工具。用戶界面看起來還算不錯。
安裝
npm install -g node-inspector11
使用
首先要鏈接待調(diào)試文件。
node –debug-brk=5858 xxx.js11
其中xxx.js就是你要調(diào)試的出錯的node文件。
接下來就是啟動。
node-inspector11
查看和操作
這時打開瀏覽器,輸入
http://127.0.0.1:8080/debug?port=585811
即可通過漂亮的UI來執(zhí)行調(diào)試命令了。
如下圖:
需要注意的是:node-inspector內(nèi)部依賴于webkit,所以只能在以webkit為內(nèi)核的瀏覽器上運行。
SuperAgent
類似于Python中的requests, 在Nodejs中也有這么一個很好用的網(wǎng)絡請求庫,那就是SuperAgent。下面簡單的來測試一下。
安裝
npm install superagent11
使用
我這邊直接按照自己的理解,寫了一個post請求方式,來獲取圖靈機器人接口內(nèi)容的示例。代碼如下:
let superagent = require(\’superagent\’);var posturl = \”http://www.tuling123.com/openapi/api\”;var payload = {
運行代碼獲得的信息如下:
POST方式獲取數(shù)據(jù)成果,詳細信息為:
教程
本來我想自己寫一遍這些基礎的用法的,但是看到了官網(wǎng)的簡介,甚是簡潔,邏輯清晰,示例優(yōu)雅。然后我覺得沒必要重復造輪子了,下面兩個鏈接看完之后基本上就能熟練掌握了。
-
官方版:http://visionmedia.github.io/superagent/
中文版:http://www.jianshu.com/p/98b854322260
cheerio
談到了SuperAgent類似于Python中的requests, 那么在獲取到網(wǎng)頁內(nèi)容之后,解析內(nèi)容的話,在Python中有BeautifulSoup這么個神器,那么在Nodejs中呢?
答案是cheerio。功能上類似于BeautifulSoup,可以作為一款優(yōu)秀的解析器來使用。
安裝
npm install cheerio11
使用
沒有一個例子的話,感覺不怎么像回事。下面還是來個簡單的例子。
/**
執(zhí)行如下命令
node simple-crawl.js11
即可看到如下內(nèi)容。
教程
為了避免重復造輪子, 我還是把看到的很經(jīng)典的鏈接放過來吧。相信中英文結合著看,運用BeautifulSoup 和jQuery的思維模式,對于cheerio 就不在話下了。
版權聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。