node js是js的一個運行環境, 實際上是對goole的V8引擎進行了封裝。
v8引擎對js的執行速度非常快、性能非常好。
node js對一些特殊用例進行了優化 提供了替代的api,使得V8引擎在非瀏覽器環境下運行的更好。
node js是一個基于chrome js運行時建立的平臺,用于方便的搭建響應速度快,易于擴展的網絡應用。node js使用事件驅動、
非阻塞的io模型而得以輕量和高效、非常適合在分布式設備上運行數據密集型的實施應用。
node js的優點
1、單線程
2、非堵塞的I/o
3、V8虛擬機
4、事件驅動
hello word的輸出
1、REPL(測試)
2、寫成獨立的js文件 首先進入到該目錄 執行 node ***.js
nodejs的程序編寫 遵循common.js的規范
Common.js定義的模塊分為:模塊引用(require)模塊定義
(exports) 模塊標識(module)
var module=require("./模塊名");
模塊名的.js可以省略
module 引入模塊的對象 可以調用在exports中被拋出(exports)中的方法
自定義模塊在引入是一定要加上路徑(./ ../等)路徑可以
是相對路徑(推薦) 也可以是絕對路徑
也就是說在定義模塊時不exports的方法 再引入該模塊時是沒有辦法被調用的
三:編寫稍大一點的程序時一般都會將代碼模塊化。
在NodeJS中,一般將代碼合理拆分到不同的JS文件中,每一個文件就是一個模塊,而文件路徑就是模塊名。
在node js中一共有三種模塊
1、核心模塊(內置模塊) http(creaeSevver) fs url querystring
2、第三方模塊 系統沒有提供,但是又需要實現功能 下載別人寫的模塊
3、自定義模塊 自己寫
搭建web服務器 用的模塊 http
本機 ip 127.0.0.1
127.0.0.1:8888
路徑的解析規則
1.核心模塊(內置模塊)不需要寫路徑 直接加載
2.普通模塊如果不寫路徑 規則 1.通過node_modules 現在本目錄找 如果目錄沒有 依次找上一級
2.通過配置環境變量? NODE_PATH? 如果沒有直接到該目錄找
json是一種輕量級的數據交換格式 有兩種基本結構:1.數組和 對象
[{},{},{}] {"key":[],"key":[],"key":[]}
1、什么是包?
package
由多個子模塊組成的大模塊稱為包。
每個包都有一個入口模塊如果入口模塊是index.js那么引入包的時候可以直接寫包名 省略入口模塊名
如果入口模塊不叫index.js,而且每個子模塊都放在目錄libs中需要在包中新建package.json
{"name":","main":"}
name:包名 main:路徑名
package.json的作用::自定義入口模塊和存放位置,
2、什么是npm? npm的作用
NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,
可以下載第三方 和 將自己編寫的第三包上傳
下載(需要進入當前的目錄) npm install 包名
如果下載指定版本的第三方包 需要npm install 包名@版本號
npm help 查看npm所有命令
發布 npm publish 包名
使用npm help可查看某條命令的詳情幫助,例如npm help inatall.使用npm Update 包名 可以把當前目錄下node_modules 子目錄里邊的對應模塊更新最新版本全局安裝 npm install 包名 -g更新全局安裝 npm update 包名 -g使用npm Unpublish@可以撤銷發布自己發布過的某個代碼