最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs入門教程一:概念與用法簡(jiǎn)介

 更新時(shí)間:2017年04月24日 10:09:20   作者:Dason_yu  
這篇文章主要介紹了nodejs入門教程之概念與用法,結(jié)合實(shí)例形式分析了nodejs基本概念、功能、命令與相關(guān)使用技巧,需要的朋友可以參考下

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

一. nodejs 的特點(diǎn)

1.nodejs 是一個(gè)javaScript 的運(yùn)行平臺(tái),采用了Google Chrome瀏覽器的V8引擎。

2.擁有事件驅(qū)動(dòng):當(dāng)web server接收到請(qǐng)求,就把它關(guān)閉然后進(jìn)行處理,然后去服務(wù)下一個(gè)web請(qǐng)求。當(dāng)這個(gè)請(qǐng)求完成,它被放回處理隊(duì)列,當(dāng)?shù)竭_(dá)隊(duì)列開(kāi)頭,這個(gè)結(jié)果被返回給用戶。

示例:點(diǎn)餐

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

現(xiàn)實(shí)中是這樣,(基于事件驅(qū)動(dòng)方式)只要你把點(diǎn)餐單給收銀員,他給你一個(gè)號(hào),你就坐著等,收銀員開(kāi)始接待下一個(gè)客戶。如果你的食物準(zhǔn)備好了,就呼叫你的號(hào)碼讓你去柜臺(tái)取。關(guān)鍵的一點(diǎn)是,你沒(méi)有阻塞下一個(gè)客戶的訂餐請(qǐng)求。呼叫你取餐,在編程領(lǐng)域,我們稱為回調(diào)(callback function)。

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

二. npm 命令

npm是一個(gè)node包管理和分發(fā)工具,已經(jīng)成為了非官方的發(fā)布node模塊(包)的標(biāo)準(zhǔn)。有了npm,可以很快的找到特定服務(wù)要使用的包,進(jìn)行下載、安裝以及管理已經(jīng)安裝的包。

1、npm install moduleNames:安裝Node模塊

安裝完畢后會(huì)產(chǎn)生一個(gè)node_modules目錄,其目錄下就是安裝的各個(gè)node模塊。

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

一般情況下會(huì)以本地模式運(yùn)行,包會(huì)被安裝到和你的應(yīng)用程序代碼的本地node_modules目錄下。

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

全局安裝命令為:

$npm install -g moduleName

獲知使用:

$npm set global=true

來(lái)設(shè)定安裝模式。

使用:

$npm get global

可以查看當(dāng)前使用的安裝模式。

示例:

npm install express

默認(rèn)會(huì)安裝express的最新版本,也可以通過(guò)在后面加版本號(hào)的方式安裝指定版本,如npm install express@3.0.6

npm install <name> -g

將包安裝到全局環(huán)境中

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

npm install <name> --save

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

2、npm view moduleNames:查看node模塊的package.json文件夾
注意事項(xiàng):如果想要查看package.json文件夾下某個(gè)標(biāo)簽的內(nèi)容,可以使用$npm view moduleName labelName

3、npm list:查看當(dāng)前目錄下已安裝的node包
注意事項(xiàng):Node模塊搜索是從代碼執(zhí)行的當(dāng)前目錄開(kāi)始的,搜索結(jié)果取決于當(dāng)前使用的目錄中的node_modules下的內(nèi)容。$ npm list parseable=true可以目錄的形式來(lái)展現(xiàn)當(dāng)前安裝的所有node包

4、npm help:查看幫助命令

5、npm view moudleName dependencies:查看包的依賴關(guān)系

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

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

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

9、npm rebuild moduleName:用于更改包內(nèi)容后進(jìn)行重建

10、npm outdated:檢查包是否已經(jīng)過(guò)時(shí),此命令會(huì)列出所有已經(jīng)過(guò)時(shí)的包,可以及時(shí)進(jìn)行包的更新

11、npm update moduleName:更新node模塊

12、npm uninstall moudleName:卸載node模塊

13、一個(gè)npm包是包含了package.json的文件夾,package.json描述了這個(gè)文件夾的結(jié)構(gòu)。訪問(wèn)npm的json文件夾的方法如下:

$ npm help json

此命令會(huì)以默認(rèn)的方式打開(kāi)一個(gè)網(wǎng)頁(yè),如果更改了默認(rèn)打開(kāi)程序則可能不會(huì)以網(wǎng)頁(yè)的形式打開(kāi)。

14、發(fā)布一個(gè)npm包的時(shí)候,需要檢驗(yàn)?zāi)硞€(gè)包名是否已存在

$ npm search packageName

15、npm init:會(huì)引導(dǎo)你創(chuàng)建一個(gè)package.json文件,包括名稱、版本、作者這些信息等

16、npm root:查看當(dāng)前包的安裝路徑
npm root -g:查看全局的包的安裝路徑

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

18、npm prune -x:將會(huì)移除package.json中沒(méi)有列舉的node_modules的包,當(dāng)執(zhí)行 npm list 報(bào) err 時(shí),就可以使用該命令。

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

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

每一個(gè)node.js執(zhí)行文件,都自動(dòng)創(chuàng)建一個(gè)module對(duì)象,同時(shí),module對(duì)象會(huì)創(chuàng)建一個(gè)叫exports的屬性,初始化的值是 {},只有通過(guò)exports或module.exports將其暴露出去,外部才能通過(guò)require() 進(jìn)行訪問(wèn)。

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

示例:fool.js

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

執(zhí)行 test.js

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

他們之間的關(guān)系就像:

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

5.在深入一點(diǎn):exports返回的是一個(gè)json對(duì)象,而module.exports可以返回任何形式的數(shù)據(jù)格式,例如數(shù)組,字符串,數(shù)字等類型時(shí),我們必須要用module.exports

//test.js
module.exports = '我是module.exports暴露的字符串';
exports.name = '我是exports暴露的name';
exports.method = function(){
  console.log('我是exports暴露的method');
};
console.log("我是console.log(exports)的結(jié)果:");
console.log(exports);
console.log();

//fool.js
var obj = require('./test.js');
console.log("我是console.log(module.exports)的結(jié)果:");
console.log(module.exports);
console.log();
console.log("我是console.log(obj)的結(jié)果:");
console.log(obj);//require() 返回的是 module.exports 而不是 exports

執(zhí)行 fool.js :

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

希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • node.js使用 http-proxy 創(chuàng)建代理服務(wù)器操作示例

    node.js使用 http-proxy 創(chuàng)建代理服務(wù)器操作示例

    這篇文章主要介紹了node.js使用 http-proxy 創(chuàng)建代理服務(wù)器,結(jié)合實(shí)例形式分析了node.js使用 http-proxy 創(chuàng)建代理服務(wù)器原理、具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Node.js實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條

    Node.js實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條

    這篇文章給大家介紹了如何實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條,如果你的工作用過(guò)上傳圖片或上傳大文件啥的,一般在IE低版本瀏覽器里,會(huì)切換到用flash解決,可是有些人肯定不會(huì)為了老舊IE的進(jìn)度條而去學(xué)flash,那么下面來(lái)一起看看吧。
    2016-09-09
  • 初學(xué)node.js中實(shí)現(xiàn)刪除用戶路由

    初學(xué)node.js中實(shí)現(xiàn)刪除用戶路由

    這篇文章主要介紹了node.js中如何實(shí)現(xiàn)刪除用戶路由,下面和小編來(lái)一起學(xué)習(xí)一下吧
    2019-05-05
  • Node.js如何提取文件中的中文字符

    Node.js如何提取文件中的中文字符

    這篇文章主要介紹了Node.js如何提取文件中的中文字符,本文介紹了在Node.js開(kāi)發(fā)中如何使用代碼提取文件中的中文字符,幫助開(kāi)發(fā)者更好地處理中文文本數(shù)據(jù),提高開(kāi)發(fā)效率
    2023-05-05
  • Node.js?中的服務(wù)器相關(guān)概念(常見(jiàn)的服務(wù)器任務(wù))

    Node.js?中的服務(wù)器相關(guān)概念(常見(jiàn)的服務(wù)器任務(wù))

    Node.js?中,服務(wù)器的創(chuàng)建與管理是非常重要的內(nèi)容,Node.js?的非阻塞?I/O?特性使得它特別適合處理高并發(fā)的請(qǐng)求,本文將介紹一些與?Node.js?服務(wù)器相關(guān)的基本概念,包括?HTTP?服務(wù)器、請(qǐng)求和響應(yīng)、路由、以及如何處理常見(jiàn)的服務(wù)器任務(wù),感興趣的朋友一起看看吧
    2025-04-04
  • 使用Nodejs?實(shí)現(xiàn)一個(gè)簡(jiǎn)單的?Redis客戶端(推薦)

    使用Nodejs?實(shí)現(xiàn)一個(gè)簡(jiǎn)單的?Redis客戶端(推薦)

    在nodejs中支持TCP連接的是net模塊,?其中使用createConnection(config)或者直接new?Socket(config)來(lái)初始化一個(gè)TCP連接,這篇文章主要介紹了用Nodejs?實(shí)現(xiàn)一個(gè)簡(jiǎn)單的?Redis客戶端,需要的朋友可以參考下
    2022-11-11
  • 淺析Node在構(gòu)建超媒體API中的作用

    淺析Node在構(gòu)建超媒體API中的作用

    超媒體即Hypermedia,是一種采用非線性網(wǎng)狀結(jié)構(gòu)對(duì)塊狀多媒體信息(包括文本、圖像、視頻等)進(jìn)行組織和管理的技術(shù)。超媒體的概念類似于早期的超文本,超文本的本質(zhì)是在文本內(nèi)容加上鏈接,這樣就構(gòu)成了超文本。超媒體也類似。
    2014-07-07
  • 圖解NodeJS實(shí)現(xiàn)登錄注冊(cè)功能

    圖解NodeJS實(shí)現(xiàn)登錄注冊(cè)功能

    這篇文章主要介紹了NodeJS實(shí)現(xiàn)登錄注冊(cè)功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 使用Node.js構(gòu)建微服務(wù)的方法

    使用Node.js構(gòu)建微服務(wù)的方法

    這篇文章主要介紹了使用Node.js構(gòu)建微服務(wù),將介紹微服務(wù)架構(gòu)、優(yōu)勢(shì)以及如何使用Node.js開(kāi)發(fā)微服務(wù),需要的朋友可以參考下
    2022-08-08
  • node.js讀取Excel數(shù)據(jù)(下載圖片)的方法示例

    node.js讀取Excel數(shù)據(jù)(下載圖片)的方法示例

    這篇文章主要給大家介紹了關(guān)于node.js讀取Excel數(shù)據(jù)(下載圖片)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評(píng)論

甘洛县| 绥阳县| 萝北县| 平阳县| 英吉沙县| 社旗县| 务川| 濮阳县| 八宿县| 洮南市| 张掖市| 兰坪| 马尔康县| 日照市| 盐源县| 平邑县| 稷山县| 辉南县| 祁连县| 融水| 城步| 安丘市| 建瓯市| 东平县| 凤山市| 庄浪县| 上犹县| 绥芬河市| 卓尼县| 托克逊县| 襄樊市| 木兰县| 平陆县| 镇沅| 高安市| 兴海县| 磐安县| 合川市| 永泰县| 新疆| 于都县|