node.js 探究之路html
一、mac下安裝node.jsnode
(1)、升級系統到最新
(2)、升級xcodegit
xcode-select -p //檢查是否安裝xcode,若是出現路徑,說明已安裝 xcode-select -install //安裝xcode /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" //安裝homebrew,官網:https://brew.sh/index_zh-cn.html brew install node //使用HomeBrew安裝nodejs npm intall -g n //安裝n模塊到全局,從而控制node版本
二、node啓一個web服務器github
新建node_test目錄,內部建立server.js文件,寫入一下代碼,
終端執行:web
$ cd node_test/imooc/beginning $ node server.js
注意: 每次修改 response.end('Hello Worldn') 返回的內容時,都要在終端執行" ctrl+c "中止當前服務,再從新啓動 "node server.js"。npm
三、node模塊系統
在node.js中,文件和模塊是一一對應的。
(1)、模塊流程:
(2)、module.exports和export區別:xcode
module.exports = add; //特別的對象類型;(推薦使用,支持現有),module.exports最終返回給調用者; exports.add = add; //傳統的模塊實例;(exports是輔助方法),exports掛載屬性和方法,而後把屬性賦給module.exports;
四、node API 之 url
(1)、url.parse()
url地址組成:ruby
protocol:指定底層使用協議,http或ftp等 slashes:是否有協議的雙斜線 host:http的IP地址或域名 port:端口 hostname:主機名 hash:哈希值,錨點 search:查詢字符串參數 query:發送給http的數據,參數串 pathname:訪問資源路徑名 path:路徑 href:超連接
URI :Uniform Resource Identifier,統一資源標識符;
URL:Uniform Resource Locator,統一資源定位符;
URN:Uniform Resource Name,統一資源名稱。
其中,URL,URN是URI的子集。服務器
(2)、url.parse(urlString,bool,bool): 將定位符解析成對象,識別無協議的url
第二個參數決定query部分以字符串返回仍是以對象形式返回,默認爲字符串返回即第二個參數默認爲false;
curl
以上圖中設置爲 true,看到的query是對象形式。
第三個參數表示在沒有完整協議串的時候(即無http:,https:)的時候‘//’以後的字符如何解釋,若爲false即將‘//’以後的當作路徑解釋,若爲true則會將‘//’與‘/’之間的字符串解釋爲主機
對比上圖中加入第三個參數,發現pathname,paht,host,port,hostname都會不一樣。
(3)、url.resolve(): 將一個基本URL和指定超連接目標URL合併
(4)、url.format(): 將對象解析成定位符(也就是URL)
五、QueryString使用
(1)、querystring.stringify(obj,para1,para2)//將對象轉化成url中query部分的形式(序列化)
參數:1.要轉化的對象 2.參數之間的連接符(默認&)3.鍵與值之間的符號(默認=)
(2)、querystring.parse(string,para1,para2)//將query字符串轉化成對象(反序列化)
參數: 1.query字符串 2.連接符(默認&),若是不是‘&’,須要在參數中說明使用的符號,以下面的‘,’。 3.鍵與值之間的符號(默認=),若是使用的不是‘=’,須要在參數中說明使用的符號,如線面的‘:’。 4.參數的個數(默認最多1000個,0就沒有限制)
(3)、querystring.escape(string)//文字轉譯
(4)、uquerystring.unescape(string)//反轉譯
五、node API 之 path
注意:該方法屬於path模塊,使用前須要引入path模塊(var path= require(「path」) )
path.resolve方法用於將相對路徑轉爲絕對路徑:
path.resolve([from ...], to) //將參數 to 位置的字符解析到一個絕對路徑裏。其中:from 源路徑,to 將被解析到絕對路徑的字符串。
例子: