Node模块的使用
一、模块和包
1.node使用模块的原因
(1)可以提高代码的利用率、可读性,减少程序的代码量
(2)可以实现代码的共享
(3)可以根据实际开发需求对外暴露模块的属性和方法
2.Node中模块的使用(CommonJS标准)
(1)使用module.exports导出模块:让模块对外暴露
(2)使用者可以通过require(模块名)将模块导入到程序中使用
3.使用exports导出模块中的部分方法和属性
var show_day = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日'];
var nowDate = new Date();//创建日期对象
var day = nowDate.getDay();//获取天
exports.sayHello = function (name) {
console.log('你好,'+name);
console.log('今天是:'+show_day[day-1]);
};
const hello = require('./model/hello');
hello.sayHello('小明');
结果展示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8WJYfhZ-1629259384999)(G:\前端学习-deyun\node\img\2-导出模块.png)]
4.exports与module.exports的区别
5.模块加载顺序
二、核心模块
1.os模块:包含了操作系统的详细信息
//导入os模块
const os = require('os');
console.log('操作系统的类型:'+os.type()); //输出操作系统的类型
console.log('操作系统的平台:'+os.platform()); //操作系统的平台
console.log('内存总量:'+os.totalmem()); //内存总量
console.log('空闲的内存:'+os.freemem()); //空闲的内存总量
console.log('CPU信息:'+os.cpus()); //CPU的信息
2.util模块:实用工具模块,可以帮助用户简化开发
//导入util模块
const util = require('util');
var res = util.format('%s:%d','西安市',12);
console.log(res);
var res1 = util.format(1,2,3);
console.log(res1);
3.path模块:用于解决多平台目录路径问题
const path = require('path');
console.log('Windows下的目录分隔符:'+path.delimiter);
console.log('Windows的路径分段分隔符:'+path.sep);
4.url模块:用来处理和解析地址
(1)第一种使用:先导入url模块,然后通过parse方法实现对地址的解析
const url = require('url');
const myurl = url.parse('http://localhost:8000/index.html?username=李四');
console.log(myurl);
console.log(myurl.query);
//?:是请求地址与参数之间的分隔符
//&:参数之间的分隔符
(2)第二种使用方法:先导入url模块中的URL类,将地址字符串作为参数传递给URL类的构造函数对地址进行解析
const {URL} = require('url');
const myUrl = new URL('http://localhost:8000/index.html?username=李四');
console.log(myUrl);
(3)解析url地址中的查询字符串:URLSearchParams类的使用
先导入:
const {URL,URLSearchParams} = require('url');
//调用方法: get方法获取值
URL类的属性之一是:searchParams
searchParams是URLSearchParams类的对象,在该类中定义了方法get(),用来获取查询字符串中的参数
5.querystring模块,用来对URL查询字符串进行处理和解析
(1)parse方法:用来将URL查询字符串解析成键值对集合
const querystring = require('querystring');
var res = querystring.parse('username=李四&password=123');
console.log(res); // 结果:{ username: '李四', password: '123' }
(2)stringify方法:将对象(键值对)转换成URL的查询字符串,实际上就是parse方法的逆操作。
var obj ={
foo:'bar',
abc:['xyz','123']
}
var str = querystring.stringify(obj);
console.log(str); // foo=bar&abc=xyz&abc=123
三、包管理器
1.升级npm:npm install npm -g
-g是安装参数,表示全局安装
2.安装本地包:npm install 包名
3.确定安装包的版本(安装指定版本的包):npm install 包名@版本号
4.安装全局包:npm install -g 包名
5.查看安装的信息:
(1)npm list —> 查看当前目录下已经安装的包
(2)npm list -g —> 查看全局安装的包
6.package.json文件的功能:
(1)会列举出当前项目所依赖的包
(2)指定当前项目所使用的的包的版本
(3)实现可重用的构建,更易于与其他开发人员分享包
7.创建package.json文件:npm init --yes
8.包的使用环境
(1)安装在开发与测试环境下使用的包:npm install 包名 --save-dev
(会在package.json中加入“devDependencies”节点)
(2)安装在生产环境中使用的包:npm install 包名 (安装的包放在dependencies中)
9.包的更新升级卸载等操作()
npm update 包名 --> 升级当前目录下指定的包
npm update -g 包名 -->升级全局指定的包
npm uninstall 包名 ---->卸载生产环境下的包
npm uninstall 包名 ----->卸载开发与测试环境下的包
npm uninstall -g 包名 ----->卸载全局的包
npm cache clean : 清空本地npm的缓存
10.发布自己的包
(1)在npm服务器上注册自己的账号
(2)把自己的包使用npm publish 发布
11.安装淘宝的npm镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm cache clean : 清空本地npm的缓存
10.发布自己的包
(1)在npm服务器上注册自己的账号
(2)把自己的包使用npm publish 发布
11.安装淘宝的npm镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org