天天看点

NodeJS中的模块和npm包管理器Node使用模块的原因Node中模块的使用(CommonJS标准)核心模块npm包管理器Node的文件系统

NodeJS中的模块和包

  • Node使用模块的原因
  • Node中模块的使用(CommonJS标准)
  • 核心模块
  • npm包管理器
  • Node的文件系统
    • fs模块

Node使用模块的原因

  • 可以提高代码的利用率,可读性,减少程序的代码量
  • 可以实现代码的共享
  • 根据实际开发的需求对外暴露模块的属性和方法

Node中模块的使用(CommonJS标准)

  • 使用moduel.exports导出模块:让模块对外暴露
  • 使用者可以通过require(模块名)将模块导入到当前的程序中使用
  • 使用exports导出模块中的部分的属性
exports.sayHello=function(name){
		console.log('你好'+name);
		console.log('今天是'+show_day[day-1]);
	}
           

核心模块

  • os

    模块:包括了操作系统的详细信息
  • util

    模块:实用工具模块,提供的功能帮助用户简化开发
  • path

    模块:用于解决多平台目录路径问题
    1. 属性:

      path.delimiter

      path.sep

    2. 方法:
  • url

    模块:
    1. 先导入url模块,然后通过parse方法实现对地址的解析:
    const url = require('url');
    	const myUrl = url.parse('http://localhost:8080/index.html?username=张三&password=123456');
    	//url地址中的符号:?:是请求地址和请求参数之间的分隔符
               
    1. 先导入url模块中的URL类,将地址字符串作为参数传递给URL类的构造函数对地址进行解析
    const{URL}=require('url');
    	constmyurl=newURL('http://localhost:8080/index.html?username=张三&password=123456');
               
    1. 解析url地址中查询字符串:URLSearchParams类的使用

      先导入:

      const{URL,URLSearchParams}=require('url');

      调用方法:get方法获取值

      URL类的属性之一是:

      searchParams

      searchParams

      URLSearchParams

      类的对象,在该类中定义方法get(),用来获取查询字符串中的参数
  • querystring

    模块:对URL查询字符串进行处理和解析
    1. parse

      方法:将URL查询字符串解析成键值对集合
    2. stringify

      方法:将对象(键值对)转换成URL的查询字符串,实际上就是parse方法的逆操作

npm包管理器

npm(Node Package Manager)包管理器

升级npm:

npm install npm -g

:-g是安装参数,表示全局安装

安装包:

  1. 安装本地包:

    npm install 包名

    确定安装包版本(安装指定版本的包):

    npm install 包名@版本号

    安装全局的包:

    npm install -g 包名

查看安装信息:

npm list

-->查看当前目录下安装的包

查看全局安装的包:

npm list -g 包名

package.json文件的功能:

  1. 列出当前项目所依赖的包
  2. 指定当前项目所使用的包的版本
  3. 实现可重用的构建,更易于其他开发人员共享包

    创建默认的package.json

    npm init --yes
               

包的使用环境

安装在开发与测试环境下使用的包(会在package.json文件中加入"devDependencies"节点)

npm install 包名 --save-dev
           

安装在生产环境中使用的包(会在package.json文件中加入"dependencies"节点)

npm install 包名
           

包的更新(升级)

npm update 包名

-->升级当前目录下指定的包

npm update -g 包名

-->升级全局的包

包的卸载

npm unistall 包名

-->卸载"dependencies"节点下的包(生产环境)

npm unistall 包名

--save-dev -->卸载"devDependencies"节点下的包(开发与测试环境)

npm unistall -g 包名

-->卸载全局的包

清空npm的本地缓存

npm cache clean

发布自己的包

在npm服务器上注册用户,使用npm publish发布。

安装淘宝的npm镜像服务器

npm install -g cnpm --registry=https://registry.npm.taobao.org
           

在安装包时,使用cnpm代替npm

Node的文件系统

fs模块

fs模块:提供了文件操作的API

fs模块共有5个类:

  1. fs.Dirent类:(指示文件的类型)
  2. fs.FSWatcher类:(监视文件)
  3. fs.ReadStream类:读取流(文件输入流)
  4. fs.WriteStream类:写入流(文件输出流)
  5. fs.Stats类:文件的信息(文件的状态)

fs模块中方法的分类:

  1. 同步方法:方法名带有Sync后缀
  2. 异步方法:方法名不带Sync后缀,最后一个参数是回调函数

fs模块的常量(FS常量)

Node中文件路径的表示方式:

  1. 字符串方式:
    1. windows下路径分隔符为: \
    2. Linux下路径分隔符为:/
  2. Buffer方式:Buffer.from(字符串) --> 主要用于linux系统
  3. URL方式:在Node7.6.0以上版本使用,支持file协议。在不同的操作系统下,解析出来的路径会有区别。

文件模式(文件访问权限):

  • a:以追加的方式打开文件,若文件不能再则创建
  • a+:以读取追加的方式打开文件,若文件不能再则创建
  • r:以只读的方式打开文件,若文件不存在则抛出异常
  • r+:以读取和写入的方式打开文件,若文件不存在则抛出异常
  • w:以写入的方式打开文件,若文件不存在则创建
  • w+:以读取和写入的方式打开文件,若文件不存在则创建

文件与目录的基本操作

  1. 文件的打开
    1. 同步打开:

      fs.openSync;

    2. 异步打开:
  2. 获取文件的信息fs.Stats
    1. stats.isDirector([path])

      :判断是否为目录
    2. stats.isDirector([path])

      :判断是否是文件
  3. 用异步的方式读取文件中指定的数据
  4. 创建目录:

    fs.mkdir(path,callback)

  5. 删除目录:

    fs.rmdir(path,callback)

  6. 删除文件:

    fs.unlink(path,callback)

继续阅读