js學習總結----初步瞭解node

來源:互聯網
上載者:User

標籤:接收   指定   增刪改查   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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.