nodejs require//////////z

背景

這篇文基本都是反對的,反對的頗有道理,不是說我這篇文章的內容錯誤,由於這篇文章是我在健身房學習node的時候寫的,這些知識都很粗糙,後來發現官方的穩定更詳細:地址:http://nodejs.org/api/modules.html

一直想在服務器端使用一種語言,ruby、phthon和php也都學過,對於我來講使用這三種語言須要必定的上下文切換成本。正在我糾結的時 候,NodeJs出現了,並且我自信對Javascript仍是比較熟悉的,所以就準備學習一下NodeJs。這樣個人語言組合爲:C#、 Javascript和NodeJs,全是C Style,幾乎沒有切換成本。php

NodeJs

網上關於NodeJs的論述不少,此處很少說。我的認爲,NodeJs的編程思想和客戶端Javascript保持了一種理念,沒有什麼變化,只是增長了「require()」函數,所以只要學好require函數,剩下的問題就是如何更好的使用API了。html

require函數詳解

路徑

    • 相對路徑之當前目錄:./xxx/xxx.js 或 ./xxx/xxx。
    • 相對路徑之上級目錄:../xxx/xxx.js 或 ../xxx/xxx。
    • 絕對路徑:F:/xxx/xxx.js 或 /xxx/xxx.js 或 /xxx/xxx。

require函數語法

require(路徑.擴展名):node

若是 路徑.擴展名 存在編程

執行加載 並 返回json

不然api

拋出異常ruby

require(路徑):服務器

若是 路徑.js 存在函數

執行加載 並 返回post

若是 路徑.node 存在

執行加載 並 返回

若是 路徑/package.json 存在

執行加載(package.json 中 main屬性對應的路徑) 並 返回

若是 路徑/index.js 存在

執行加載 並 返回

若是 路徑/index.node 存在

執行加載 並 返回

拋出異常

require(模塊名字):

若是 模塊名字是系統模塊

執行加載 並 返回

若是 require(./node_modules/模塊名字) 能加載到模塊  //參考require(路徑)的介紹

執行加載 並 返回

若是 require(../node_modules/模塊名字) 能加載到模塊  //參考require(路徑)的介紹

執行加載 並 返回

沿着目錄向上逐級執行require(上級目錄/node_modules/模塊名字),若是能加載到模塊  //參考require(路徑)的介紹

執行加載 並 返回

拋出異常

代碼示例

文件結果

 

require_study.js中的代碼

複製代碼
 1 require('module_1_1.js');  2 require('module_1_2');  3 require('../node_modules/module_2_1.js');  4 require('../node_modules/module_2_2');  5 require('../package_2_1');  6 require('package_3_1');  7 require('./node_modules/package_3_2');  8 require('module_3_1');  9 require('/node_study/level1/level2/level3/node_modules/module_3_1'); 10 require('module_3_2'); 11 require('/node_study/level1/level2/level3/package_3_3'); 12 require('./package_3_4'); 13 require('./module_3_3'); 14 require('same_name_module'); 15 require('same_name_package'); 16 require('same_name_module_and_package');
複製代碼

輸出結果

複製代碼
 1 module_1_1.js  2 module_1_2.js  3 module_2_1.js  4 module_2_2.js  5 package_2_1  6 package_3_1  7 package_3_2  8 module_3_1.js  9 module_3_2.js 10 package_3_3 11 package_3_4 12 module_3_3.js 13 same_name_module.js in leaf 14 same_name_package in leaf 15 same_name_module_and_package.js in leaf module
複製代碼

 代碼下載:http://yunpan.cn/QWIiPxdZdW8RG

備註

剛接觸NodeJs,尚未深刻學習其API,包括我對require的理解,也不必定正確,歡迎批評和指正。關於require(模塊名字),應該有一個全局查找路徑,今晚我再查查資料。

這篇文章說的更詳細,早知官方有文章,我就不寫了,文章地址:http://nodejs.org/api/modules.html

相關文章
相關標籤/搜索