什么是NodeJS?
JS是一種腳本語言,腳本語言的運行,都需要一個解析器,NodeJS則是對于獨立運行JS充當解析器的角色;每個解析器都是一種運行環境,允許JS定義各種數據結構和使用運行環境提供內置對象,運行在NodeJS中的JS的用途是操作磁盤文件或搭建HTTP服務器,NodeJS就相應提供了fs、http等內置對象。---fs:引入文件讀取模塊,http:一種協議
模塊加載---require('模塊')
- 模塊的使用
- 一個文件為一個模塊
- 每個模塊都有自己的作用域
- 在模塊中,我們用var聲明的變量是當前模塊的全局變量,不是Nodejs中的全局變量
var a=1;
console.log(global.a)//undefined
- 定義在global上的才是是全局的,我們可以直接調用
global.a=1;
console.log(a);//1
- require()
- require()函數的參數是一個路徑,這個路徑可以是相對的,也可以是絕對的
*注:相對路徑需要加./
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
- 一些全局函數:
- setTimeout()
- clearTimeout()
- setInterval()
- clearInterval()
- 、、、
http協議
- URI和URL
- URI: 統一資源標識符,是Uniform Resource Identifier 的縮寫,由URL和URN兩個主要子集構成
1.URL:通過描述資源的位置來描述資源
2.URN:通過名字來識別資源,和位置無關 - URL: 統一資源定位符---使用瀏覽器等訪問web頁面的時候需要輸入的網頁地址,是URI的一個子集
- URI
- URI是某個協議方案表示的資源的定位標識符,協議方案是指訪問資源所使用的協議類型名稱
- 協議方案有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主要由三部分組成:方案(協議)+服務器位置+資源路徑
https://github.com/lulupy/angular-file-upload
- 通用的URL由九部份組成
<schema>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>
1.schema 協議,通常是http,https
2.user和password現在不常見了,不會在URL明文書寫用戶名和密碼了,都是通過登錄的方式
3.host 主機,可以是ip或者域名
4.port 端口號用來區分主機上的進程,方便找到web服務器,http默認是80,https默認是443
5.path是資源的路徑,也就是存放位置,不一定和物理路徑完全對應,符合web服務器路由約定即可
6.params,在一些協議中需要參數來訪問資源,例如ftp是二進制還是文本傳輸,參數是名值對,用;隔開
7.query:這個是get請求最常用的傳遞參數方式了 ?a=1&b=2&=3
8.hash也成為片段,設計為標識文檔的一部分,很多MVVM框架用作了路由功能