nodejs學習目錄
一、nodejs簡介,安裝,運行
二、REPL運行環(huán)境
三、事件循環(huán),事件模塊,Node.js 多進程
四、nodejs模塊
(1)nodejs模塊功能:commenjs模塊
(2)http模塊:5的大模塊;, nodejs路由
(3)buffer模塊:from().alloc(),allocunsafe(),write
(4)filter模塊:文件夾,文件,屬性,stream
(5)工具模塊uitle
五、全局對象
六、nodejs工具
七、mysql,MongoDB
八、RESTful API、Node.js JXcore 打包
一、nodejs簡介,安裝,運行
Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行時環(huán)境。
node的4大優(yōu)勢
1.前后語言統(tǒng)一,可以實現(xiàn)程序員的全棧開發(fā);還可以統(tǒng)一公共類庫,代碼標準化;
2.使用v8作為執(zhí)行引擎。
3.nodejs單線程機制,開發(fā)簡單;nodejs處理io密集型應用有明顯優(yōu)勢;
4.強大的社區(qū)工具包。
對于Nodejs來說最不擅長的領域在于CPU和內存的編程操作。
1. 計算密集型應用,讓Javascript和C去拼計算性能,估計是不可能贏的。
2. 內存控制,讓Javascript和Java比較復雜數(shù)據(jù)類型定義,也是很困難的。因為Javascript的面向對象是基于JSON的,而Java是直接使用內存結構。所以,通過JSON序列化和反序列的過程控制內存,Javascript就已經(jīng)輸了。
3. 大內存的應用,由于V8引擎有內存設計的限制,32位環(huán)境中最大堆是1G,64位環(huán)境中最大堆也不到2G,如果要一次讀入10G數(shù)據(jù),對于Nodejs來說也無法實現(xiàn)。
4. 靜態(tài)服務器,雖然Nodejs的優(yōu)勢在IO密集集應用,但是和Nginx的處理靜態(tài)資源還是有很大的差距。
5. 不需要異步的應用:比如系統(tǒng)管理,自行化腳本等,還是Python更順手,Nodejs的異步調用可能會給編程帶來一些麻煩。
nodejs應用場景
1 Web開發(fā):Express|koa2 + EJS + Mongoose/MySQL,
2 REST開發(fā):Restify
3 Web聊天室(IM):Express + Socket.io
4 Web爬蟲:Cheerio/Request
5 Web博客:Hexo
6 Web論壇: nodeclub
7 Web幻燈片:Cleaver
8 前端包管理平臺: bower.js
9 OAuth認證:Passport
10 定時任務工具: later
11 瀏覽器環(huán)境工具: browserify
12 命令行編程工具:Commander
13 Web控制臺工具: tty.js
14 客戶端應用工具: node-web-wit
15 操作系統(tǒng): node-os
node -v。 //查看安裝版本
進入相關目錄,執(zhí)行node 文件名。? //編譯js
Node。? //進入node交互模式
ctr+c退出node編譯
process.exit() 以編程的方式退出node
process.exit(1) 設置退出碼,一般為0
process.exitCode? 設置退出碼
process.on('SIGTERM',()=>{ server.close(()=>{ console.log("進程已終止")}) })
process.kill(process.pid, 'SIGTERM')
nodejs設置環(huán)境變量
set NODE_ENV='';? //在終端輸入
nodejs讀取環(huán)境變量
process.env.NODE_ENV? //默認“development”
process.argv? 返回node執(zhí)行傳入的參數(shù),第三個是;
require 指令來載入 node 模塊
二、REPL運行環(huán)境
1.REPL(交互式解析器)
(1)輸入node進入交互式解析器
(2)使用var定義變量
(3)_獲取上次運算結果
(4)ctrl+c退出