node.js 相當(dāng)于php
1、簡單易學(xué)? ? 他是用js語言進行的開發(fā),對于前端人員,好入門,易上手。
2、輕量級? ? ? ? 本身的技術(shù)是有價值,提高工作效率。
js通過谷歌的v8引擎? ? ,運行在服務(wù)器端? 》》》node.js
node.js:簡介
1、什么事node.js是什么?
他不是一門語言,而是一門技術(shù)? 他也不是一個js的框架或者是庫,? 他是一個基于谷歌的v8引擎和libuv庫封裝的一個
供js運行在瀏覽器之外的運行平臺
node.js 跳過了http的服務(wù)器,所以速度才快,性能也更好
node.js 他是單線程? ? 多進程? ? 異步? ? 非阻塞? ? I/O模型
2、node.js的特點:
異步式I/O:? node.js所有的異步機制都基于事件;
事件驅(qū)動:現(xiàn)在理解為:(帶有回掉函數(shù)的事件)
3、node.js的缺點:
大量的使用匿名函數(shù);? 造成了開發(fā)和調(diào)試難度? 因為大批量的匿名函數(shù),他就會加深邏輯性;
回掉函數(shù):? ? ? 不嚴(yán)格意義上 == 匿名函數(shù)
4、應(yīng)用范圍:
高并發(fā)的業(yè)務(wù)(請求特別多); 如電子商務(wù)網(wǎng)站
I/O密集型業(yè)務(wù)(大量的讀寫);
桌面應(yīng)用,單頁面應(yīng)用
node.js:
REPL模式:? read 寫入? ? eval 求值? ? print 輸出? ? ? loop 循環(huán)
電腦控制臺進入:
node -v
npm -v
node? 直接回車進入node
.save 名字.js? 保存文件
.load 名字.js? 保存文件修改后的文件
命令:
ctrl+c(2次):退出REPL模式;
ctrl+d:退出模式;
tab建:查看命令;
.break:退出多行表達(dá)式;
.clear:退出多行表達(dá)式;
.save 名字.js? 保存文件;
.load 名字.js? 保存文件;
.help 顯示你可用命令;
_ :上一個結(jié)果;
global: 查看所有屬性和方法;
2、怎么用node.js運行,js代碼;
1、進入命令行;? ? windows+r? ==>? cmd
2、進入要運行的文件所在位置;? ? cd 文件所在路徑
3、node 要運行的文件名字? ? ? ? node. 文件名字;
4、process 進程對象
process.argv? ==>數(shù)組
webStrom:清空cls
模塊化
1、為什么用模塊化進行開發(fā)?
解決js代碼量過大
2、什么模塊化?
積木,拼圖 ==》 通過每個獨立的小模塊組成一個完整的功能
模塊化工具? ? Sea.js? ? require.js
3、node.js 自帶的模塊化
規(guī)范:commonjs規(guī)范
優(yōu)點:方便調(diào)試,模塊間相互不影響,避免了環(huán)境變量的污染和命名沖突,從而提高了代碼的維護性
module:
怎么定義模塊:一個文件就是一個模塊
module就是暴露模塊的對象
module.exports:暴露模塊接口的一個屬性
require()? ==》引入模塊? 加載模塊