Nodejs 實用工具集筆記

編程語言 Node.js 腳本語言 WebKit 青峰科技 2017-06-07

前言

學了Nodejs一天了,這種異步非阻塞式的編程模型彷彿一下子打破了我的思維模式,總有一種根本不會編程的感覺。不過從中也確實讓我獲得了很多寶貴的經驗。

這裡暫且記錄一下學習過程中遇到的一些實用的庫吧,給自己一個紀念。

工具列表

supervisor

之前寫Python的Flask或者Django的時候,一旦修改了源代碼,後臺調試服務器就會自動檢測到變化,然後restart。所以可以直接在瀏覽器上直接刷新看到最新的結果。而寫了一點點Node代碼的我發現每次都必須先CTRL+C,然後重新運行服務器端代碼,才能看到最新的結果。

Nodejs只有在第一次引用到某部分時才回去解析腳本,以後都會直接訪問內存中解析好的腳本文件內容。

這在一定程度上確實提高了性能,但是開發的時候真的不是一個好做法。幸好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

命令本身也會給我們很多提示性的內容。

Starting child process with 'node sample.js'Watching directory 'E:\Code\Nodejs\learn\tools' for changes.

不難看出,supervisor啟動了一個子進程來處理node腳本,然後本身檢測文件變化,實時做處理。

rs命令代表著restarting,即我們可以手動的讓服務器腳本重新啟動。


node-inspector

調試代碼的一款比較好用的在線調試工具。用戶界面看起來還算不錯。

安裝

npm install -g node-inspector11

使用

首先要鏈接待調試文件。

node --debug-brk=5858 xxx.js11

其中xxx.js就是你要調試的出錯的node文件。

接下來就是啟動。

node-inspector11

查看和操作

這時打開瀏覽器,輸入

http://127.0.0.1:8080/debug?port=585811

即可通過漂亮的UI來執行調試命令了。

如下圖:

Nodejs 實用工具集筆記

需要注意的是:node-inspector內部依賴於webkit,所以只能在以webkit為內核的瀏覽器上運行。


SuperAgent

類似於Python中的requests, 在Nodejs中也有這麼一個很好用的網絡請求庫,那就是SuperAgent。下面簡單的來測試一下。

安裝

npm install superagent11

使用

我這邊直接按照自己的理解,寫了一個post請求方式,來獲取圖靈機器人接口內容的示例。代碼如下:

let superagent = require('superagent');var posturl = "http://www.tuling123.com/openapi/api";var payload = {

運行代碼獲得的信息如下:

POST方式獲取數據成果,詳細信息為:

教程

本來我想自己寫一遍這些基礎的用法的,但是看到了官網的簡介,甚是簡潔,邏輯清晰,示例優雅。然後我覺得沒必要重複造輪子了,下面兩個鏈接看完之後基本上就能熟練掌握了。

  • 官方版:http://visionmedia.github.io/superagent/

  • 中文版:http://www.jianshu.com/p/98b854322260


cheerio

談到了SuperAgent類似於Python中的requests, 那麼在獲取到網頁內容之後,解析內容的話,在Python中有BeautifulSoup這麼個神器,那麼在Nodejs中呢?

答案是cheerio。功能上類似於BeautifulSoup,可以作為一款優秀的解析器來使用。

安裝

npm install cheerio11

使用

沒有一個例子的話,感覺不怎麼像回事。下面還是來個簡單的例子。

/**

執行如下命令

node simple-crawl.js11

即可看到如下內容。

Nodejs 實用工具集筆記

教程

為了避免重複造輪子, 我還是把看到的很經典的鏈接放過來吧。相信中英文結合著看,運用BeautifulSoup 和jQuery的思維模式,對於cheerio 就不在話下了。

相關推薦

推薦中...