02_10.nodejs第二天

NodeJS 第二天

復(fù)習(xí)

  • NodeJS 簡介
  • NodeJS 的安裝
  • NodeJS 初體驗(yàn)
  • 環(huán)境變量
  • NodeJS中的JavaScript
    • 天生支持模塊化
    • 一個模塊就是一個私有作用域
    • 模塊與模塊之間提供了特定的通信交互規(guī)則
      • require
      • module.exports
    • 組成
      • ECMAScript
      • 核心模塊
      • 第三方模塊
        • moment
        • art-template
        • 使用:
          • npm install 第三方模塊名
          • 使用reqiure 函數(shù)加載
          • 看文檔,自己寫
      • 用戶自定義模塊
  • 使用Node 模仿 Apach 文件瀏覽功能

渲染方式

  • 瀏覽器渲染

    • 特點(diǎn)
      • 從服務(wù)器得到數(shù)據(jù)
      • 在瀏覽器中將數(shù)據(jù)進(jìn)行渲染
    • 優(yōu)點(diǎn):
      • 第一次加載頁面時數(shù)據(jù)相對而言會少一點(diǎn)
      • 用戶體驗(yàn)會好一點(diǎn)
    • 缺點(diǎn):
      • 不利于SEO優(yōu)化
  • 服務(wù)器渲染

    • 特點(diǎn):
      • 所有的數(shù)據(jù)在服務(wù)器端已經(jīng)加載完畢
      • 瀏覽器只負(fù)責(zé)渲染頁面就可以
    • 優(yōu)點(diǎn):
      • 利于SEO優(yōu)化
    • 缺點(diǎn):
      • 第一次加載時速度會慢一點(diǎn)

    ?

文件操作的同步與異步

  • 異步讀取文件

    console.log('111');
    
    fs.readFile('./a.txt',function(err,data) {
    
        console.log('222');
    
    });
    
    fs.readFile('./b.txt',function(err,data) {
    
        console.log('333');
    
    });
    
    fs.readFile('./c.txt',function(err,data) {
    
        console.log('444');
    
    });
    
    console.log('555'); 
    
  • 同步讀取文件

      ?```
      var fs = require('fs');
      
      console.log('111');
      
      var dataA = fs.readFileSync('./a.txt').toString();
      console.log('222');
      console.log(dataA);
      
      var dataB = fs.readFileSync('./a.txt').toString();
      console.log('333');
      console.log(dataB);
      
      var dataC = fs.readFileSync('./a.txt').toString();
      console.log('444');
      console.log(dataC);
      
      console.log('555');
      ?```
    
  • 區(qū)別:

    • 異步:
      • 通過一個回調(diào)函數(shù)來獲取異步操作結(jié)果
      • 異步操作的回調(diào)函數(shù)第一個 參數(shù):err
        • 如果操作成功:err 為null
        • 如果操作失?。篹rr 為 錯誤對象
        • 所以在異步操作中,優(yōu)先判斷 err 是否出錯
        • 在異步操作中,無法通過try-catch來捕獲異常
    • 同步:
      • 直接等待代碼讀取完文件再去執(zhí)行下面的代碼

第三方模塊:模板引擎的使用

  • 總結(jié):數(shù)據(jù)使用模板渲染即可以在瀏覽器端渲染,又可以在服務(wù)器端渲染.
    • 區(qū)別:
      1. 在瀏覽器端渲染(如:京東商品的評論信息),可以使頁面加載更快,用戶體驗(yàn)更好
      2. 在服務(wù)器端渲染(如:京東商品數(shù)據(jù)),可以使頁面利于SEO優(yōu)化

得到文件的狀態(tài)

  • fs.stat(path, callback)
    • 作用:用來判斷傳入的路徑的狀態(tài)
    • 參數(shù):
      • path:要傳入的路徑
      • callback:回調(diào)函數(shù)
        • 回調(diào)函數(shù)參數(shù):
          • err 目錄出錯時的對象
          • stat 路徑的狀態(tài)對象
            • stat.isFile():判斷路徑對應(yīng)的是否是文件
            • stat.isDirectory():判斷路徑對應(yīng)的是否是文件夾
            • stat.size:得到對應(yīng)路徑文件的大?。ㄈ绻窂綄?yīng)的是文件夾,則得不到大?。?/li>
            • stat.mtime:得到應(yīng)對路徑文件的修改時間

使用 nodemon 實(shí)現(xiàn)改完代碼服務(wù)自動重啟

  • nodemon 是一個基于 Node 開發(fā)的一個命令行工具,

    • 可以實(shí)現(xiàn)監(jiān)視代碼改動,自動重啟服務(wù)的功能。
    • 本質(zhì)還是通過 node 執(zhí)行的咱們自己寫的腳本代碼。
  • 使用步驟:

    • 第一,安裝 nodemon

      簡寫:npm i -g nodemon
      
      全稱:npm install --global nodemon
      
    • 第二,基本使用:

      ?```
       以前的做法:node app.js
      
       現(xiàn)在的做法:nodemon app.js 
      ?```
      
      ?
      

web中的路徑

?

?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 個人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)。如有錯誤歡迎斧正 目錄 簡書好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,653評論 1 37
  • 一、核心模塊和對象 核心模塊的意義 常用內(nèi)置模塊path:處理文件路徑fs:操作文件系統(tǒng)child_process...
    EndEvent閱讀 4,517評論 0 1
  • 文件系統(tǒng)模塊是一個封裝了標(biāo)準(zhǔn)的 POSIX 文件 I/O 操作的集合。通過require('fs')使用這個模塊。...
    保川閱讀 939評論 0 0
  • Node.js是目前非?;馃岬募夹g(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計出JavaScri...
    w_zhuan閱讀 3,733評論 2 41
  • ##### URL模塊 這個模塊可以幫助我們解析url地址,從里面提取很多有用的內(nèi)容供我們使用; 假設(shè)這是一個ur...
    浪流兒閱讀 3,033評論 0 2

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