Nodejs第一讲记录
大家好, 我是雄雄,歡迎關注公眾號?:雄雄的小課堂
Node.js
Node的簡介
node是運行在服務端的JS
基于谷歌 JavaScript運行時建立的一個平臺
是一個事件驅動IO服務端JavaScript環境,基于谷歌V8引擎,V8引擎執行JavaScript的速度非常快,性能比較好
如果你是后端程序員,想部署一些高性能的服務,那么學習Node.js也是一個非常好的選擇。
Hbuilder中安裝node插件
點擊工具--》插件安裝--》選擇nodejs的插件,點擊后面的選擇,點擊安裝。
然后選擇需要運行的js文件,右擊,點擊運行方式--》Node Application,即可在控制臺中輸出內容
Hbuilder中添加cmd外部工具
點擊==運行==,選擇外部工具,選擇外部工具配置 ,點擊新建 ,起個名字比如叫【cmd】 ,在要執行的命令活文件里面寫C:\\Windows\System32\cmd.exe ,然后下面的瀏覽工作空間 ,直接選擇當前需要操作的項目即可。
使用外部工具的方式運行js文件:
右擊js文件, 點擊外部工具,選擇==cmd== ,這個時候就會打開控制臺,然后在控制臺中輸入node js文件名.js回車即可。
Node.js模塊化
ECMAScprit標準的缺陷 1.沒有模塊系統 2.標準庫比較少 3.沒有標準接口 4.缺乏管理系統
如果程序設計的規模達到了一定的程度,則必須進行模塊化
模塊化可以有多種形式,但是至少應該提供能夠將代碼分割為多個源文件的機制
CommonJS的模塊功能可以幫我們解決該問題。
總結:
1.對于Node.js來說,一個js文件就是一個模塊 2.在``Node.js中,我們通過require()函數來引用其他模塊。require(“路徑”),可以傳遞一個文件的路徑作為參數,如果使用 相對路徑,必須以.或..開頭 3.使用require()函數`引入一個模塊后,該函數會返回一個對象,這個對象代表的是引入這個模塊。4.在node中,每一個js文件中的js代碼都是獨立運行在一個函數中,而不是全局作用域,所以一個模塊中的變量和函數在其他模塊中無法訪問
在一個文件中引入另一個文件, 使用require函數引入別的模塊,語法如下:
var?md?=?require("./Module01.js"); console.log(md);module01.js中的內容:
console.log("但是"); exports.x=?10;在Node中,每個js文件中的js代碼都是獨立運行在一個函數中的,而不是全局作用域的,所以一個模塊中的變量和函數是不能在別的模塊中調用, 如果在A文件中有這樣的聲明var a = 10 ,那么在B文件中是無法直接調用,那么此時需要修改A文件代碼為:exports.a = 10, 則在B文件中即可調用(console.log(md.a);)
函數也是一樣的原理,如果想要在B文件中調用,則需要在函數的前面加exports關鍵詞。
console.log("但是"); exports.x=?10; exports.fn?=?function(a,b){return?a+b; };var?md?=?require("./Module01.js"); console.log(md.x); console.log(md.fn(10,10));問題分析
如果有多個字段或者方法需要暴露出來供別的js文件訪問的時候怎么辦?
笨方法:
exports.name?=?"王炎霸"; exports.age?=?18; exports.sayName?=?function(name){console.log("傳過來的姓名是:"+name);};顯然這種方式太麻煩, 那么我們可以用module.exports的方法來編寫:
module.exports={name?:?"張三",age?:14,sayName:function(name){console.log("原來的名字是:"+this.name);//調用上面的name屬性console.log("傳過來的姓名是:"+name);???//接收參數name的值輸出} }調用的代碼:
console.log(md.sayName("李四"));在Node 中有一個全局對象global,它的作用與網頁中的window類似,在全局中創建的變量都會作為global的屬性保存, 在全局總創建的函數都會作為global的函數保存
局部變量:
var?num?=?10;全局變量:
num?=?10;?獲取全局變量:
console.log(global.a);總結
1.實際上當node執行模塊中的代碼時,他首先會在代碼的最前端 ,添加如下代碼:
function?(exports,?require,?module,?__filename,__dirname)?{//模塊中的代碼 }而在代碼的最低端則會添加一對{}
2.實際上模塊中的代碼都是包裝在一個函數中執行的,并且在函數執行時,同時傳遞了5個實參。
3.查看長度 ?console.log(arguments.length);
exports:該對象用來將變量或函數暴露在外部
require:該函數用來引入外部模塊
module:代表當前模塊本身,exports就是module的屬性,既可以使用exports導出,也可以使用modult.exports導出
_filename:當前模塊完整路徑
_dirname:當前模塊目錄
總結
以上是生活随笔為你收集整理的Nodejs第一讲记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天是个特殊的一天,有意义的一天,值得纪
- 下一篇: 越努力越幸运,三年了!!!