標籤:接收 指定 增刪改查 strong 管理 utf-8 資訊 false glob
JS是一門“運行在用戶端(運行在瀏覽器)”的“輕量級”的指令碼程式設計語言
JS目前不僅僅只能在瀏覽器中運行,還可以在NODE中運行
node的優點:基於GoogleV8引擎的,具有強大的io操作,基於事件驅動的非同步 編程。
1、什麼是node
node是一個環境,供JS代碼執行的環境,我們可以把他等價於瀏覽器,只不過我們一般都會把node這個環境安裝到伺服器端,這樣的話我們就可以在伺服器端使用JS編寫程式了,也就是JS不僅僅是用戶端的語言,也是伺服器端的語言...
2、node && 瀏覽器
NODE採用的是Google的V8引擎來渲染JS的(啟動並執行速度快、穩定、我們編寫的JS代碼不需要考慮相容)
瀏覽器中的全域JS對象是window,而node環境下的全域JS對象是global
瀏覽器是安裝在用戶端的,為了保護用戶端的安全,基本上不可能提供用JS對客戶電腦磁碟上的檔案進行操作的功能;但是node環境中提供了對應的I/O操作(伺服器上檔案的操作),我們使用JS可以對伺服器磁碟下的檔案進行增刪改查。
NODE是基於事件驅動的 / 非同步編程(我們在NODE環境下編寫的JS程式一般都是非同步編程的)
NODE提供給JS很多新的方法:http.createServer、fs.writeFileSync、fs.readFileSync...
3、如何讓JS代碼在NODE中執行?
利用webStrom嵌入了NODE的環境,直接把編寫的JS通過右鍵“run xxx.js”在NODE環境中執行(不建議大家經常這樣使用,因為有些時候我最新執行的操作其實會運行前幾次的緩衝,因為有些時候會有緩衝)
在命令視窗中執行
在當前要執行的JS檔案目錄下,shift+右鍵 =>在此處開啟命令視窗 => node xxx.js 相當於把JS代碼在NODE環境中執行了。
在NODE中執行JS代碼和瀏覽器中執行一樣,如果JS代碼發生了修改,想要看到最新的效果需要重新執行對應的JS檔案。
在命令視窗中執行node,然後開始編寫對應的JS代碼測試即可(RPEL命令操作),和在瀏覽器的控制台編寫代碼測試一樣。
4、NODE模組
內建模組(NODE環境天生提供的):http(createServer...)、fs(writeFileSync、readFileSync)、url...
自訂模組:我們自己定義的模組
在NODE環境中,我們在當前的項目下建立了一個JS檔案,就相當於建立了一個模組,例如:建立一個a.js,就相當於建立了a模組
如果需要提供一些方法給其他的模組使用,則需要通過module.exports把方法匯出,例如:在A模組中寫了module.exports = {fn:fn} / module.exports.fn = fn
如果現在B模組中使用,我們需要先匯入var a = require("./a");這樣就可以調取A模組匯出的方法 a.fn()
第三方模組:別人寫好的模組我們拿來使用 在NODE中如果需要使用別人的模組,需要使用npm這個命令進行管理 https://www.npmjs.com/
安裝: npm install 第三方模組名稱 -g (安裝在NODE的全域環境中)
卸載:npm uninstall 第三方模組名稱 -g
安裝成功後在JS中通過 var less = require("less");把剛才安裝的第三方模組匯入到JS中,這樣的話我們就可以使用這個模組中提供的方法了 less.render...
5、服務建立成功後,如何的向伺服器發送請求
在瀏覽器中輸入 http://localhost:連接埠號碼/
在瀏覽器中輸入 http://原生IP地址:連接埠號碼/
下面是常用的http、fs、url的方法的代碼:
//匯入三個常用的NODE內建模組var http = require("http"), fs = require("fs"), url = require(‘url‘);//URL模組提供了一個方法,url.parse(str),用來解析url地址。第一個參數為傳遞的url,第二個參數預設是false,變為true後,返回結果的query中儲存的是經過處理解析後的結果:把傳遞進來的多組資料以索引值對的方式進行儲存//1、HTTP /* http.createServer 建立一個服務,變數server就是我們建立出來的那個服務 server.listen:為這個服務監聽一個連接埠80*/ var server = http.createServer(function(request,response){ //當用戶端向伺服器端的當前服務(連接埠號碼是80這個服務)發送一個請求,並且當前服務已經成功接收到這個請求後 //request(請求):存放的是所有用戶端的請求資訊,包含用戶端通過問號傳參的方式傳遞給伺服器的資料內容 // console.log(request.url);//用戶端請求的地址,我們服務端通過request.url擷取到的是不包括localhost或者ip地址的資訊例如:index.html?name=zhangsan&age=7 var urlObj = url.parse(request.url,true), pathname = urlObj.pathname, query = urlObj.query; //根據請求的URL地址(具體的是根據地址中的pathname)擷取到對應資源檔中的原始碼 if(pathname === "/1.html"){ //fs.readFileSync([path+name],[encode])同步讀取指定檔案夾中的內容:檔案中的內容讀取不完不執行下面的操作 var con = fs.readFileSync(‘./1.html‘,"utf-8"); } //response(響應):提供了向用戶端返回內容和資料的方法 //response.write:向用戶端返回內容 //response.end:告訴伺服器響應結束了(一定要加) response.write(con); response.end();});server.listen(80,function(){ //當服務建立成功,並且連接埠號碼監聽成功之後執行這個回呼函數 console.log("server is create success,listening on 80 port")});
js學習總結----初步瞭解node