NodeJS 第二天
復(fù)習(xí)
- NodeJS 簡介
- NodeJS 的安裝
- NodeJS 初體驗(yàn)
- 環(huán)境變量
- NodeJS中的JavaScript
- 天生支持模塊化
- 一個模塊就是一個私有作用域
- 模塊與模塊之間提供了特定的通信交互規(guī)則
- require
- module.exports
- 組成
- ECMAScript
- 核心模塊
- fs:文件模塊
- http:網(wǎng)絡(luò)模塊
- 第三方模塊
- 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)化
- 特點(diǎn)
-
服務(wù)器渲染
- 特點(diǎn):
- 所有的數(shù)據(jù)在服務(wù)器端已經(jīng)加載完畢
- 瀏覽器只負(fù)責(zé)渲染頁面就可以
- 優(yōu)點(diǎn):
- 利于SEO優(yōu)化
- 缺點(diǎn):
- 第一次加載時速度會慢一點(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ū)別:
- 在瀏覽器端渲染(如:京東商品的評論信息),可以使頁面加載更快,用戶體驗(yàn)更好
- 在服務(wù)器端渲染(如:京東商品數(shù)據(jù)),可以使頁面利于SEO優(yōu)化
- 區(qū)別:
得到文件的狀態(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)對路徑文件的修改時間
- 回調(diào)函數(shù)參數(shù):
使用 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中的路徑
?
?