什么是NodeJS另患?
JS是一種腳本語言,腳本語言的運行蛾绎,都需要一個解析器昆箕,NodeJS則是對于獨立運行JS充當解析器的角色;每個解析器都是一種運行環(huán)境租冠,允許JS定義各種數(shù)據(jù)結構和使用運行環(huán)境提供內置對象鹏倘,運行在NodeJS中的JS的用途是操作磁盤文件或搭建HTTP服務器,NodeJS就相應提供了fs顽爹、http等內置對象纤泵。---fs:引入文件讀取模塊,http:一種協(xié)議
模塊加載---require('模塊')
- 模塊的使用
- 一個文件為一個模塊
- 每個模塊都有自己的作用域
- 在模塊中,我們用var聲明的變量是當前模塊的全局變量镜粤,不是Nodejs中的全局變量
var a=1;
console.log(global.a)//undefined
- 定義在global上的才是是全局的捏题,我們可以直接調用
global.a=1;
console.log(a);//1
- require()
- require()函數(shù)的參數(shù)是一個路徑,這個路徑可以是相對的肉渴,也可以是絕對的
*注:相對路徑需要加./
require('./serve.js');
require('gulp')//加載nodejs核心模塊--node_module文件下的模塊
- 文件查找加載方式
- 首先按照模塊名稱進行查找
- 如果沒有找到,則加上.js進行查找
- 如果沒有找到,則加上.json查找
- 如果沒有找到,則加上.node查找
- 還沒找到公荧,則報錯
- 訪問模塊中定義的變量
- global,不推薦使用
- 模塊對象module----module對象:保存和提供和當前模塊有關的一些信息
- module.exports對象
- module.exports是moudle對象下的字對象同规,可以通過這個對象對當前模塊的局部變量進行訪問
//模塊文件
var a=1;
module.exports.a=a;//或者寫為:module.exports{a:a}
var m1=require('上面的模塊')循狰;
console.log(m1.a);//1
- 一些全局函數(shù):
- setTimeout()
- clearTimeout()
- setInterval()
- clearInterval()
- 、券勺、绪钥、
http協(xié)議
- URI和URL
- URI: 統(tǒng)一資源標識符,是Uniform Resource Identifier 的縮寫朱灿,由URL和URN兩個主要子集構成
1.URL:通過描述資源的位置來描述資源
2.URN:通過名字來識別資源昧识,和位置無關 - URL: 統(tǒng)一資源定位符---使用瀏覽器等訪問web頁面的時候需要輸入的網(wǎng)頁地址钠四,是URI的一個子集
- URI
- URI是某個協(xié)議方案表示的資源的定位標識符盗扒,協(xié)議方案是指訪問資源所使用的協(xié)議類型名稱
- 協(xié)議方案有http跪楞、ftp、mailto侣灶、file甸祭、telnet等
ftp://ftp.is.co.za.rfc/rfc1808.txt
http://samaritan89.github.io/f2e/js/ajax.html
mailto:sunluyong@gmail.com
telnet://192.0.2.16:80
- URL
- URL主要由三部分組成:方案(協(xié)議)+服務器位置+資源路徑
https://github.com/lulupy/angular-file-upload
- 通用的URL由九部份組成
<schema>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
1.schema 協(xié)議,通常是http,https
2.user和password現(xiàn)在不常見了褥影,不會在URL明文書寫用戶名和密碼了池户,都是通過登錄的方式
3.host 主機,可以是ip或者域名
4.port 端口號用來區(qū)分主機上的進程,方便找到web服務器凡怎,http默認是80,https默認是443
5.path是資源的路徑校焦,也就是存放位置,不一定和物理路徑完全對應统倒,符合web服務器路由約定即可
6.params寨典,在一些協(xié)議中需要參數(shù)來訪問資源,例如ftp是二進制還是文本傳輸房匆,參數(shù)是名值對耸成,用;隔開
7.query:這個是get請求最常用的傳遞參數(shù)方式了 ?a=1&b=2&=3
8.hash也成為片段,設計為標識文檔的一部分浴鸿,很多MVVM框架用作了路由功能