Node的包管理器、模块化管理、Module对象、require命令

导读:本篇文章讲解 Node的包管理器、模块化管理、Module对象、require命令,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、Node的包管理器(包是第三方的功能模块)

1. npm:Node Package Manager,是Node.js的默认的包管理器。在开发node程序时,管理第三方的模块

​ (1)常用指令:

  • npm init -y : 项目初始化

              -y 的含义:yes的意思,在init的时候省去了敲回车的步骤,生成的默认的package.json

  • ​ npm -v :查看版本号
  • ​ npm i -g npm to update:更新npm到最新版本。(参数i表示install,参数g表示global)
  • ​ npm install -g npm@版本号:更新npm到指定版本
  • ​ npm install 包名 -g :表示全局安装指定的包 (C:\Users\Administrator\AppData\Roaming\npm)
  • ​ npm install 包名 : 表示局部安装指定的包
  • ​ npm uninstall 包名:卸载指定的包

​ (2)设置淘宝镜像的方式:

​ 第一种: npm install -g cnpm —registry = https://registry.npmmirror.com

​ 在项目中安装包(第三方功能模块)的方式有两种

​ (1)npm install 包名(模块名) —- 从国外的npm服务器上下载要安装的模块

​ (2)cnpm install 包名(模块名) – — 从淘宝镜像的服务器上下载要安装的模块

​ 第二种:npm config set registry https://registry.npmmirror.com —- 将npm的服务器地址重定向的淘宝镜像

​ 在项目中安装包(第三方功能模块)的方式只有一种

  • ​ npm install 包名(模块名)
  • ​ npm config delete registry —— 将npm服务器地址恢复成默认的地址
  • ​ npm config get registry —— 显示npm服务器的地址

2. yarn包管理器 :快速、安全、可靠的依赖包管理工具

​ (1)安装:npm install yarn -g

​ (2)使用yarn安装包

  • ​ yarn add 包名

​ (3)将服务器的地址重新定位到淘宝镜像

​ (4)使用yarn卸载安装的包

  • ​ yarn remove 包名
//1.导入http模块
const http= require('http')
//2.设置服务器的名称、端口号
const hostname = '127.0.0.1'
const port = 3000
//3.创建http服务器
const server = http.createServer((request,response)=>{
    //3.1设置响应状态码
    response.statusCode =200
    //3.2设置响应头信息
    response.setHeader('Content-Type','text/html')//plain纯文本,html页面显示
    //3.3向客户端发送字符串Hello World
    response.end('<h1>Hello World</h1>')
})
//4.服务器启动监听
server.listen(port,hostname,()=>{
    console.log(`服务器运行在http://${hostname}:${port}`);
})

二、Node的模块化管理

1、模块化:node应用程序由模块组成。遵循的是CommonJS模块规范。使用模块管理的好处是隔离模块的作用域,避免出现命名冲突。

2、什么是CommonJS:是一套代码的规范,构建一个在浏览器之外的JavaScript语言的生态系统。

3、CommonJS规范的主要内容:

​ (1)通过module.exports导出对外的变量或接口

​ (2)通过require将其他模块导入到当前模块的作用域中

4、CommonJS的特点:

​ (1)所有模块都运行在当前模块的作用域中,不会污染全局作用域

​ (2)模块是同步加载,根据文件中模块出现的顺序依次加载

​ (3)模块可以多次加载,但只有在第一次加载时运行,其他的加载会放入缓存中,后面再使用时直接从缓存中读取

// 导出
module.exports.name = '岳灵珊'
module.exports.age = 18
module.exports.getName = function(){
    console.log('name',this.name)
}
module.exports.getAge = function(){
    console.log('age',this.age)
}
// 导入app.js
var person = require('./001.js')
person.getName()
person.getAge()

三、Node的Module对象

1、在node内部定义了一个Module构造函数,构造函数的属性有:

​ (1)id:表示模块的标识符

​ (2)parent:表示调用模块的模块

​ (3)exports:表示导出的值

​ (4)paths:表示模块(第三方模块)的查找路径。当前目录的node_modules —>父目录的node_modules—->…..—>根目录下的node_modules

​ (5)path:当前模块所在的路径

​ (6)filename:当前模块所在的文件名

Node的包管理器、模块化管理、Module对象、require命令

 强调:在CommonJS规范中所有的模块都是Module的实例(对象)

2、exports变量:该变量指向module.exports,作用是方便用户的操作

//导出
exports.area = function(r){//exports指向module.exports,可以省略module    area相当于函数名
    return Math.PI * r**2 
}
// 导入
var circle = require('./demo1.js')
let a = circle.area(3)//对area函数进行调用
console.log(a.toFixed(2))

强调:不能直接给exports赋一个值,这样就切断了exports与module.exports之间的连续。不能进行导出了

//导出
exports = 'Hello World'//报错
exports.area = function(r){//exports指向module.exports,可以省略module    area相当于函数名
    return Math.PI * r**2 
}

四、require命令

require命令:是node的内置命令,主要用于加载模块文件

1、作用:导入并运行JavaScript文件,返回的是exports对象

2、加载规则:

​ (1)加载文件的默认后缀名是:.js

​ (2)如果参数字符串以’/‘开头,表示加载的文件是位于绝对路径下的文件

​ (3)如果参数字符串以’./‘开头,表示加载的文件是位于相对路径下的文件

​ (4)如果参数字符串不以“./“或”/“开头,则表示加载的是一个默认提供的核心模块(位于Node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块(全局安装或局部安装)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79768.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!