node中npm的使用

        在nodejs中,如果想要使用第三方库,什么叫做第三方库呢?库就是模块的意思,我自己写的模块可以叫做第一方库,nodejs内置的http等模块可以叫做第二方库,其他别人写好的功能,我们拿过来就可以直接用,这些别人写好的能够让我们直接下载之后就可以使用的模块就叫做第三方库。怎么下载呢?通过nodejs的npm命令,npm就是nodejs  package  manage,nodejs包管理的意思。我们可以去https://www.npmjs.com/上面搜索自己想要的功能,看有没有已经被别人实现好并可以让我们下载,如果有,我们又何必自己浪费时间去实现呢?

需求:使用base64加密一段字符串,并解密输出。

思路:很明显,这里需要实现base64加密与解密的功能,去npm社区(https://www.npmjs.com/)搜索base64

image.png

随便选择一个点击去有用法介绍可以看,我们只需要安装上面给出的api来使用就可以了。

首先安装,我这里选择的是第一个base-64,在命令行执行"npm install base-64"

D:\zhao\nodews>npm install base-64
npm WARN saveError ENOENT: no such file or directory, open 'D:\zhao\nodews\pack
ge.json'
npm notice created a lockfile as package-lock.json. You should commit this file

npm WARN enoent ENOENT: no such file or directory, open 'D:\zhao\nodews\package
json'
npm WARN nodews No description
npm WARN nodews No repository field.
npm WARN nodews No README data
npm WARN nodews No license field.

+ base-64@0.1.0
added 1 package in 4.385s

D:\zhao\nodews>

执行了上面的命令之后,我们查看目录结构发现多了一个文件夹node_modules和一个名为package-lock.json的文件:

image.png

我们编写test.js如下:

var base64 = require('base-64/base64.js');

//加密 
var text = 'abcdefg';
var encoded = base64.encode(text);
console.log(encoded);//YWJjZGVmZw==

//解密
var decoded = base64.decode(encoded);
console.log(decoded);

运行test.js结果如下:

D:\zhao\nodews>node test.js
YWJjZGVmZw==
abcdefg

可以看到已经运行成功了。我们现在回过头来看看npm执行之后发生了什么样的故事,以及在编写test.js的时候又该怎么理解var base64 = require('base-64/base64.js');

    1.执行命令npm install base-64会在当前目录的node_modules目录下安装base-64这个插件,如果这个node_modules目录不存在,则自动新建。

    2.在require('base-64/base64.js');的时候,跟我们以往引用自己定义的插件或者模块不同,以往我们写了相对路径,比如“./mymodules/sum.js”,而这里我引入require('base-64/base64.js');并没有使用相对路径,nodejs会去哪里找要引用的模块呢?答案是去node_modules文件夹内。还有一点需要注意的是,因为当前test.js文件所在路径为D:\zhao\nodews,node_modules文件夹也在D:\zhao\nodews下,其实,node_modules文件夹在D:\zhao\下或者D:\下都可以,也就是说,nodejs的require('base-64/base64.js');这句话会去当前路径的node_modules文件夹下去找,如果没有,就去上级目录下去找node_modules文件夹,就这样一层层回溯,直到根目录下都可以,不信你可以试试哦。

    3.node_modules文件夹的全局路径:node_modules除了上边的当前目录以及祖先目录的回溯寻找,即叫做本地路径。node_modules文件夹还有一个全局路径,在全局路径里面安装的插件或框架针对该台电脑上的所有nodejs项目都起作用,一般来说,全局路径下只安装对nodejs配置、或者框架类、命令行、工程化的东西,比如gulp、cnpm,bower等,而像base-64这样的实现具体功能的插件还是安装在本地路径比较合适。这个全局路径在哪里呢?我的电脑是:C:\Users\za-zhaodaowen\AppData\Roaming\npm,你可以通过“npm config ls”命令来查看:

image.png

image.png

也可以使用“npm root -g”来查看npm的全局路径:

D:\zhao\nodews>npm root -g

C:\Users\za-zhaodaowen\AppData\Roaming\npm\node_modules

    4.怎么使用npm安装到全局路径下去呢?难道把我们上边自己生成的D:\zhao\nodews\node_modules拷贝过去?怎么可能这么low呀,只需要在你安装的时候加上-g参数就行了,-g表示global,全局安装的意思。

D:\zhao\nodews>npm -g install bower  上面的命令就在全局路径下安装了bower这个东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值