Node.js基礎(chǔ)

Nodejs是什么:

  • 解析執(zhí)行JS,不包括DOM、Style等;

    • 是一個(gè)構(gòu)建與 Chrome V8 引擎之上的一個(gè)JavaScript運(yùn)行時(shí)環(huán)境
    • Node 可以像瀏覽器一樣去解析和執(zhí)行JavaScript代碼;
    • Chrome V8引擎是所有瀏覽器里面解析和執(zhí)行 JS 代碼塊 最快的;
    • 在Node中,沒(méi)有界面,不再需要關(guān)心HTML、CSS
    • 和DOM style沒(méi)有任何關(guān)系;只需要關(guān)注JavaScript;ECMAScript;
      • 文件操作
      • 網(wǎng)絡(luò)操作
      • 讓JavaScript代碼具有了服務(wù)器編程能力
  • NodeJS的特性:

    • 事件驅(qū)動(dòng)
    • 非阻塞IO模型:大量的異步編程接口;NodeJS中充滿了類(lèi)似于ajax 一樣的API,回答函數(shù);
    • 快平臺(tái)
    • 單線程
    • 輕量和高效
  • npm 是世界上最大的開(kāi)源庫(kù)生態(tài)系統(tǒng)

    • npm 上發(fā)布的第三方包已經(jīng)接近35萬(wàn)個(gè)之多

NodeJS可以做什么

  • NodeJS為JavaScript提供了服務(wù)端編程的能力(不處理UI);
    • Java、PHP、Python、。net、Ruby等 做的Node都能做
    • 網(wǎng)站開(kāi)發(fā),提供網(wǎng)站服務(wù)端
    • 具有與數(shù)據(jù)庫(kù)交互的能力
    • 移動(dòng)應(yīng)用,網(wǎng)絡(luò)游戲等需要服務(wù)的地方Node都可以做;
    • CLI(Command Line Interface)命令行接口程序
      • 例如:Gulp、hexo、git等
      • Node 具有開(kāi)發(fā)命令行工具的能力;

Node的應(yīng)用場(chǎng)景

  • Node是前端進(jìn)階必備的一個(gè)能力;
  • 對(duì)IO操作比較頻繁;IO:input、 output
    • 文件讀取
    • 和數(shù)據(jù)庫(kù)交互:網(wǎng)絡(luò)數(shù)據(jù)IO

一些資源

  • 樸靈:《深入淺出Node.js》原理性,阿里出品
  • 阮一峰的Node.js
  • Node入門(mén),nodebegin.org/index-zn-cn 強(qiáng)烈推薦

Node 程序的運(yùn)行

  1. 在終端的任何目錄下輸入node命令,都可以執(zhí)行node.exe程序
    • 核心就在于通過(guò)操作系統(tǒng)
  2. 參數(shù)

Node中的ECMAScript

  1. Node中的window 是 global

Node核心模塊

  1. Node把絕大多數(shù)的API,都封裝到了一份具名的核心模塊了,例如文件操作的fs; 網(wǎng)絡(luò)操作的http等;
  2. 也就是說(shuō),使用核心模塊,必須先加載才可以使用;

核心模塊以位移的標(biāo)識(shí)名稱(chēng)進(jìn)行暴露,使用時(shí),通過(guò)require進(jìn)行引入

    var name = require('唯一標(biāo)識(shí)的模塊名稱(chēng)');

在Node中使用第三方包

  1. 通過(guò) npm 下載
  2. 通過(guò) rquire 函數(shù)引包
  3. 查看第三方的API,try-try-see;

用戶自定義模塊

  1. 在Node中,也提供了一種所謂的JavaScript模塊化解決方案,(類(lèi)似以requireJS);

小知識(shí)點(diǎn)

  1. chrome瀏覽器每次會(huì)發(fā)送兩次請(qǐng)求,一次請(qǐng)求icon;一次請(qǐng)求數(shù)據(jù);
    /a
    /favicon.ico
  1. Node 獲取請(qǐng)求路徑 var url = res.url;
  2. 不同的響應(yīng)頭
    //HTML格式,網(wǎng)頁(yè)面中寫(xiě)數(shù)據(jù)的時(shí)候不會(huì)出現(xiàn)中文亂碼;
    res.writeHead(200,{
            'Content-Type':'text/html;charset=utf-8'
        });
        res.writeHead(200,{
        //響應(yīng)的內(nèi)容是簡(jiǎn)單文本
        'Content-Type':'text/plain; charset=utf-8'
    })

  1. ./data/a.txt = data.a.txt;
  2. 如果 fs.readFile('/data/a.txt');則去腳本文件的根路徑下面去找 C/data/a.txt文件
  3. 數(shù)組轉(zhuǎn)換成字符串 JSON.stringfy(array);
  4. res.end(data)=== res.write(data) res.end();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Chapter01.簡(jiǎn)介 NodeJS是讓JavaScript脫離瀏覽器運(yùn)行在服務(wù)器的一個(gè)平臺(tái),不是語(yǔ)言。 Nod...
    JunChow520閱讀 1,042評(píng)論 0 9
  • 首先,我們要理解node.js的概念,以及他的用法。node.js 是幫助我們架設(shè)外部服務(wù)器,來(lái)進(jìn)行外部服務(wù)的提供...
    風(fēng)清揚(yáng)101閱讀 481評(píng)論 0 1
  • 個(gè)人入門(mén)學(xué)習(xí)用筆記、不過(guò)多作為參考依據(jù)。如有錯(cuò)誤歡迎斧正 目錄 簡(jiǎn)書(shū)好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫(xiě)給我自己看...
    kirito_song閱讀 2,651評(píng)論 1 37
  • Node.js是目前非常火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,732評(píng)論 2 41
  • Node.js是目前非常火熱的技術(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    Myselfyan閱讀 4,203評(píng)論 2 58

友情鏈接更多精彩內(nèi)容