国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs入門教程一:概念與用法簡介

2019-11-19 16:45:27
字體:
來源:轉載
供稿:網友

本文實例講述了nodejs概念與用法。分享給大家供大家參考,具體如下:

一. nodejs 的特點

1.nodejs 是一個javaScript 的運行平臺,采用了Google Chrome瀏覽器的V8引擎。

2.擁有事件驅動:當web server接收到請求,就把它關閉然后進行處理,然后去服務下一個web請求。當這個請求完成,它被放回處理隊列,當到達隊列開頭,這個結果被返回給用戶。

示例:點餐

在基于線程的方式中(thread-based way):收銀員接待你點餐開始,收銀員不能接待下一個人,直到你拿到食物離開。

現實中是這樣,(基于事件驅動方式)只要你把點餐單給收銀員,他給你一個號,你就坐著等,收銀員開始接待下一個客戶。如果你的食物準備好了,就呼叫你的號碼讓你去柜臺取。關鍵的一點是,你沒有阻塞下一個客戶的訂餐請求。呼叫你取餐,在編程領域,我們稱為回調(callback function)。

3.異步編程,單線程:高并發時,更加靈活,非阻塞,性能好。

二. npm 命令

npm是一個node包管理和分發工具,已經成為了非官方的發布node模塊(包)的標準。有了npm,可以很快的找到特定服務要使用的包,進行下載、安裝以及管理已經安裝的包。

1、npm install moduleNames:安裝Node模塊

安裝完畢后會產生一個node_modules目錄,其目錄下就是安裝的各個node模塊。

node的安裝分為全局模式和本地模式。

一般情況下會以本地模式運行,包會被安裝到和你的應用程序代碼的本地node_modules目錄下。

在全局模式下,Node包會被安裝到Node的安裝目錄下的node_modules下。

全局安裝命令為:

$npm install -g moduleName

獲知使用:

$npm set global=true

來設定安裝模式。

使用:

$npm get global

可以查看當前使用的安裝模式。

示例:

npm install express

默認會安裝express的最新版本,也可以通過在后面加版本號的方式安裝指定版本,如npm install express@3.0.6

npm install <name> -g

將包安裝到全局環境中

但是代碼中,直接通過require()的方式是沒有辦法調用全局安裝的包的。全局的安裝是供命令行使用的,就好像全局安裝了vmarket后,就可以在命令行中直接運行vm命令

npm install <name> --save

安裝的同時,將信息寫入package.json中,項目路徑中如果有package.json文件,直接使用npm install方法就可以根據dependencies配置安裝所有的依賴包,這樣代碼提交到github時,就不用提交node_modules這個文件夾了。

2、npm view moduleNames:查看node模塊的package.json文件夾
注意事項:如果想要查看package.json文件夾下某個標簽的內容,可以使用$npm view moduleName labelName

3、npm list:查看當前目錄下已安裝的node包
注意事項:Node模塊搜索是從代碼執行的當前目錄開始的,搜索結果取決于當前使用的目錄中的node_modules下的內容。$ npm list parseable=true可以目錄的形式來展現當前安裝的所有node包

4、npm help:查看幫助命令

5、npm view moudleName dependencies:查看包的依賴關系

6、npm view moduleName repository.url:查看包的源文件地址

7、npm view moduleName engines:查看包所依賴的Node的版本

8、npm help folders:查看npm使用的所有文件夾

9、npm rebuild moduleName:用于更改包內容后進行重建

10、npm outdated:檢查包是否已經過時,此命令會列出所有已經過時的包,可以及時進行包的更新

11、npm update moduleName:更新node模塊

12、npm uninstall moudleName:卸載node模塊

13、一個npm包是包含了package.json的文件夾,package.json描述了這個文件夾的結構。訪問npm的json文件夾的方法如下:

$ npm help json

此命令會以默認的方式打開一個網頁,如果更改了默認打開程序則可能不會以網頁的形式打開。

14、發布一個npm包的時候,需要檢驗某個包名是否已存在

$ npm search packageName

15、npm init:會引導你創建一個package.json文件,包括名稱、版本、作者這些信息等

16、npm root:查看當前包的安裝路徑
npm root -g:查看全局的包的安裝路徑

17、npm -v:查看npm安裝的版本

18、npm prune -x:將會移除package.json中沒有列舉的node_modules的包,當執行 npm list 報 err 時,就可以使用該命令。

19、npm -g install npm@x.xx.xx : 升級(降級)npm,然后復制 C:/Users/你的windows用戶名/AppData/Roaming/npm/node_modules/npm下的所有文件到你的Nodejs安裝目錄的 /nodejs/node_modules/npm 中,替換掉所有所有的文件。

三. nodejs exports、module.exports 與require() 結合使用

每一個node.js執行文件,都自動創建一個module對象,同時,module對象會創建一個叫exports的屬性,初始化的值是 {},只有通過exports或module.exports將其暴露出去,外部才能通過require() 進行訪問。

① module.exports 初始值為一個空對象 {}
② exports 是指向的 module.exports 的引用
③ require() 返回的是 module.exports 而不是 exports
④ 綜上,可以說 exports 是給 module.exports 添加屬性和方法!!!

示例:fool.js

exports.a = function(){  console.log('a')}exports.a = 1;module.exports = {a: 2};exports.a = 3;

執行 test.js

var c = require('./fool'); //require() 返回的是 module.exports 而不是 exportsconsole.log(c.a);//2

他們之間的關系就像:

var a = new Object();//a相當于module.exportsvar b = a; //b相當于exports

5.在深入一點:exports返回的是一個json對象,而module.exports可以返回任何形式的數據格式,例如數組,字符串,數字等類型時,我們必須要用module.exports

//test.jsmodule.exports = '我是module.exports暴露的字符串';exports.name = '我是exports暴露的name';exports.method = function(){  console.log('我是exports暴露的method');};console.log("我是console.log(exports)的結果:");console.log(exports);console.log();
//fool.jsvar obj = require('./test.js');console.log("我是console.log(module.exports)的結果:");console.log(module.exports);console.log();console.log("我是console.log(obj)的結果:");console.log(obj);//require() 返回的是 module.exports 而不是 exports

執行 fool.js :

我是console.log(exports)的結果:{ name: '我是exports暴露的name', method: [Function] }我是console.log(module.exports)的結果:{}我是console.log(obj)的結果:我是module.exports暴露的字符串

希望本文所述對大家nodejs程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额敏县| 汕头市| 佛坪县| 北川| 临沭县| 辽宁省| 阜城县| 云南省| 新巴尔虎左旗| 南康市| 普洱| 育儿| 家居| 阳春市| 治多县| 娄底市| 班戈县| 兰考县| 上高县| 峨眉山市| 古浪县| 德江县| 吉木萨尔县| 新乡县| 汝南县| 武安市| 乐至县| 双柏县| 沙雅县| 紫阳县| 福泉市| 水富县| 衡山县| 玛多县| 蛟河市| 西乌| 博野县| 菏泽市| 巴中市| 石阡县| 孝昌县|