Nodejs-02 模块/包 - 图1

模块

image.png

引用模块

  1. const 模块变量名 = require('模块名\路径')

自己定义的模块,路径要准确,没有路径的话会优先是查找内置模块,然后再查找这个项目下已安装的模块,再查找自己定义的模块,这样就浪费时间。

API文档

第三方模块

可以通过npm 包管理工具安装

1、自动创建package.json

  1. npm init

在项目文件夹内打开命令行,运行上面命令,就会在项目内自动创建一个包配置文件package.json
Nodejs-02 模块/包 - 图3

2、安装需要的包

  1. npm i 包的名字

在项目文件夹内打开命令行,运行上面命令,就会在这个项目内安装这个包
同时package.json文件内就会多出这个包的名字,如下图的“request”包
Nodejs-02 模块/包 - 图4
并且会在目录生成一个node_models文件夹,存放这些包和这些包依赖的包的文件。

导出模块

一个js文件就是模块,可以导出这个模块的功能,给其他文件引用。

  1. module.exports.导出的名字 = 导出的变量;

module.exports是一个对象,可以设置属性,导出就是一个多属性的对象。

模块初始化

image.png
引入模块,被引入的模块只会执行1次,反复require是不会反复执行的。

常用内置模块

url 解析地址

  1. const url = require('url'); //引入内置模块
  2. url.parse('https://www.baidu.com') //解析链接,已弃用
  3. //解析结果
  4. Url {
  5. protocol: 'https:',
  6. slashes: true,
  7. auth: null,
  8. host: 'www.baidu.com',
  9. port: null,
  10. hostname: 'www.baidu.com',
  11. hash: null,
  12. search: null,
  13. query: null,
  14. pathname: '/',
  15. path: '/',
  16. href: 'https://www.baidu.com/'}

url.format(URL[, options]) 按格式输出

  1. const myURL = new URL('https://a:b@測試?abc#foo');
  2. console.log(myURL.href);
  3. // 打印 https://a:b@xn--g6w251d/?abc#foo
  4. console.log(myURL.toString());
  5. // 打印 https://a:b@xn--g6w251d/?abc#foo
  6. console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));,已弃用
  7. // 打印 'https://測試/?abc'

tree 生成文件树目录

image.png

querystring 查询字符串

解码,也就是文本变对象,参数参考api文档
querystring.parse(str[, sep[, eq[, options]]])

querystring.decode()

  1. //引入模块
  2. const querystring = require('querystring');
  3. //解码
  4. let testobj = querystring.parse('foo=bar&abc=xyz&abc=123')
  5. //{ foo: 'bar', abc: [ 'xyz', '123' ] }

编码,对象变文本,参数参考api文档
querystring.stringify(obj[, sep[, eq[, options]]])

querystring.encode()

  1. //引入模块
  2. const querystring = require('querystring');
  3. //编码
  4. let test = querystring.encode(
  5. {
  6. id:123,
  7. name:'yjl',
  8. sex:'man'
  9. }
  10. )
  11. //id=123&name=yjl&sex=man

querystring.escape(str)是转换成%编码
querystring.unescape(str)是把%编码转成文本

path 路径

解析后缀名
image.png
拼接路径
image.png
image.png
内置路径
image.png
以对象的方式解析路径
image.png
image.png