Node.js?
????????誕生于2009年,Node.js采用C++語言編寫而成,是?一個Javascript的運行環境。Node.js?是一個基于?Chrome?V8?
????????引擎的?JavaScript?運行環境?,讓JavaScript的運行脫離瀏覽器端,可以使用JavaScript語言?書寫服務器端代碼。
安裝Node.js
????????[Node.js官網](????https://nodejs.org????)下載穩定版本,node偶數版本為穩定版本,奇數版本為非穩定版本。
????????????????-?mac?直接安裝??或者?brew來安裝
????????????????-?安裝完Node.js會自動安裝NPM(Node?Package?Manager):包管理工具;
????????????????-?Win + R , 輸入cmd ,打開dos命令行,輸入?node -v?查看NodeJS版本號;
使用淘寶的鏡像網址
????????npm config set registry http://registry.npm.taobao.org
安裝cnpm
????????npm install -g cnpm
安裝yarn
? ? ? ? npm install -g yarn
? ? ? ? 跟npm類似,更強大些,支持斷點續傳,區別不大
安裝nodemon? 可自動終止并重啟服務器,自動刷新文件
????????npm i nodemon -g
????????????????終止服務 ctrl+C按兩下
安裝cookie模塊在運行依賴
? ? ? ? npm i cookie -s
在項目文件夾創建package.json文件
????????npm?init -y
????????創建一個package.json文件
package.json功能性
? ? ????"scripts"標簽可以自定義簡寫,運行命令npm run mytest,結果執行someting...?
? ? ? ? echo輸出
npm root 功能
????????npm root -g
????????顯示 npm 包儲存位置的根目錄(其實就是 node_modules 的所在位置)
common.js規范
????????-?自定義模塊
????????????????-?導入:require;(“./”問題)
? ? ? ? ? ? ? ? -?導出:module.exports或者exports;
????????????????-?node_modules里package.json配置;
????????????????-?node_modules查找規則(向上查找)
????????-?內置模塊
????????-?內置模塊不需要安裝,外置模塊需要安裝;
npm網站可下載模塊和文檔
????????npmjs.com
require引入模塊
????????require("./aModule")? ? ? ? ? ? ?//注意一定要有"./",文件后綴可加可不加。
module.exports?導出? ? ? ?自定義模塊的按需導出
????????通過module.exports?導出;?\_\__dirname??,?\_\_filename
npm包管理器? ? ??https://www.npmjs.com
? ??????dependencies:運行依賴? ??jquery、vue、react? ? ? 上線后依然需要??
? ??????devDependencies:開發依賴? ??sass?less? ? 開發時方便,打包編譯之后就無用了
npm常用指令
-?npm?i?????--save-dev(-D)?--save(?-S?);??package.json
????????-??-g??
????????-?npm??root??、npm?root?-g
????????-?npm?init:引導創建一個package.json文件
????????-?npm?help(npm?-h)?:查看npm幫助信息
????????-?npm?version?(npm?-v)?:?查看npm版本;
????????-?npm?search:查找
????????-?npm?install?(npm?i):安裝??默認在當前目錄,如果沒有node_modules?會創建文件夾;
????????-?npm?install?module_name?-S?或者--save????即????npm?install?module_name?--save????寫入dependencies
????????-?npm?install?module_name?-D??或者?—save-dev???即????npm?install?module_name?--save-dev?寫入devDependencies
????????-?npm?install?module_name?-g?全局安裝(命令行使用)
????????-?指定版本安裝模塊???npm?i?module_name?@1.0?通過??"@"符號指定;
????????-?npm?update(npm?-up):更新
????????-?npm?remove?或者??npm?uninstall:刪除
????????-?npm?root??查看當前包安裝的路徑??或者通過??npm?root?-g?來查看全局安裝路徑;
注冊與發布
????????-?注冊賬號:[https://www.npmjs.com/](https://www.npmjs.com/)???(郵箱驗證)
????????-?npm??adduser?輸入剛剛注冊好的用戶名和密碼??;
????????????????如果注冊地址不對需要重新改回來:?
????????``npm?config?set?registry?https://registry.npmjs.org/?``??(官方地址)
????????`https://registry.npm.taobao.org/`??????(淘寶源地址)
????????????????查詢源地址
????????`npm?config?list`
cnpm的安裝及使用;
yarn包管理工具
????????npm?install?-g?yarn
fs文件操作模塊
????????所有文件操作都是有同步和異步之分,特點是同步會加上?"Sync"?如:異步讀取文件??"readFile",同步讀取
????????文件?"readFileSync";
????????所有文件操作?沒有加Sync都是異步?否則是同步;
????????????????let?fs?=?require("fs");
? ? ????不加"utf-8",需要toString轉換
文件操作
目錄操作
buffer緩沖區? 二進制的類
????????內部傳遞文件快速高效,不需轉碼
stream流:流與數據處理方面密不可分
????????流數據的獲取
????????????????-?pipe 管道? ? ? ? ?讀取1.txt寫入到2.txt
????????????????-?data
????????????????-?end
使用NVM(Node?Version?Manager)控制Node.js版本
????????-?nvm是mac環境下管理nodejs的工具。在windows環境下推薦使用nvmw或者nvm-windows;
????????-?Nvm-windows??下載地址?https://github.com/coreybutler/nvm-windows???下載?nvm-setup.zip
安裝NVM
????????-?在安裝nvm之前需要一個c++編譯器,在mac上可以安裝Xcode命令工具(已經安裝可以忽略)
????????????????`xcode-select?--install`
使用?curl安裝
????????`curl?-o-?https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh?|?bash`
或者使用wget來安裝
????????`wget?-qO-?https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh?|?bash`?
NVM?[github的地址](<https://github.com/creationix/nvm>)可以查看最新版本
NVM常用指令
????????`?nvm?--version查看版本`??
????????``nvm?install?stable?//安裝最新穩定版nodejs``
????????``?nvm?install?8.11.1??//安裝指定版本``
????????``??nvm?install?8.11?????//安裝?8.11.x系列最新版本``
????????``?nvm?ls-remote??????//列出遠程服務器上所有可用的版本``
????????``?nvm?use?8.11.1????//切換到8.11.1版本``
????????``nvm?use?8.11??????//切換到8.11.x最新版本``
????????``??nvm?use?node???//切換到最新版本``
????????``??nvm?alias?default?node?//設置默認版本為最新版本``
????????``?nvm?ls???//列出所有已經安裝的版本``
Google?Chrome?默認非安全端口列表,盡量避免以下端口
????????1,????//?tcpmux
????????7,????//?echo
????????9,????//?discard
????????11,???//?systat
????????13,???//?daytime
????????15,???//?netstat
????????17,???//?qotd
????????19,???//?chargen
????????20,???//?ftp?data
????????21,???//?ftp?access
????????22,???//?ssh
????????23,???//?telnet
????????25,???//?smtp
????????37,???//?time
????????42,???//?name
????????43,???//?nicname
????????53,???//?domain
????????77,???//?priv-rjs
????????79,???//?finger
????????87,???//?ttylink
????????95,???//?supdup
????????101,??//?hostriame
????????102,??//?iso-tsap
????????103,??//?gppitnp
????????104,??//?acr-nema
????????109,??//?pop2
????????110,??//?pop3
????????111,??//?sunrpc
????????113,??//?auth
????????115,??//?sftp
????????117,??//?uucp-path
????????119,??//?nntp
????????123,??//?NTP
????????135,??//?loc-srv?/epmap
????????139,??//?netbios
????????143,??//?imap2
????????179,??//?BGP
????????389,??//?ldap
????????465,??//?smtp+ssl
????????512,??//?print?/?exec
????????513,??//?login
????????514,??//?shell
????????515,??//?printer
????????526,??//?tempo
????????530,??//?courier
????????531,??//?chat
????????532,??//?netnews
????????540,??//?uucp
????????556,??//?remotefs
????????563,??//?nntp+ssl
????????587,??//?stmp?
????????601,??//???
????????636,??//?ldap+ssl
????????993,??//?ldap+ssl
????????995,??//?pop3+ssl
????????2049,?//?nfs
????????3659,?//?apple-sasl?/?PasswordServer
????????4045,?//?lockd
????????6000,?//?X11
????????6665,?//?Alternate?IRC?[Apple?addition]
????????6666,?//?Alternate?IRC?[Apple?addition]
????????6667,?//?Standard?IRC?[Apple?addition]
????????6668,?//?Alternate?IRC?[Apple?addition]
????????6669,?//?Alternate?IRC?[Apple?addition]