nodejs第三天(核心模块与文件模块,核心模块和文件模块引入的区别,从模块外部访问模块内部,使用exports对象,npm包管理工具package.json文件,模块对象属性,将模块定义分类,npm
Posted songbingqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs第三天(核心模块与文件模块,核心模块和文件模块引入的区别,从模块外部访问模块内部,使用exports对象,npm包管理工具package.json文件,模块对象属性,将模块定义分类,npm相关的知识,希望对你有一定的参考价值。
核心模块与文件模块
ndejs是一个js运行环境,是一个平台。nodejs基于操作系统,封装了一些功能,http,tcp,udp,i/o模块,path,fs,stream等等
通过nodejs内置的模块,他们就称为核心模块。(他们都是nodejs内置的)http,fs,path等
文件模块:只要写一个js文件,每一个文件都是模块 。(自己写的js文件都被称为文件模块)
核心模块和文件模块引入的区别
核心模块有环境变量做调度
文件模块需要给出文件路径
注意:核心模块是nodejs内置的一些功能模块,文件模块是开发人员编写的js文件
从模块外部访问模块内部成员(运用global,将变量变为全局变量 但是golbal相当于window会造成全局污染)
在nodejs中一个文件又称为一个模块。从一个模块访问外部模块中变量或方法
像创建了连个模块,demo1和demo2
在demo1中声明的ste 方法add()
在demo2中没有权限访问,如果要访问到的话,就要把变量或方法做成全局属性
用到golbal来吧str和add函数变为全局属性
golbal.str="声明变量"
golbal.add=function(){console.log("函数表达式")}
使用exports对象
exports这个对象的属性 可以将模块内的方法,变量抛出m、 并且在其他引入的模块中可见(可使用)
在demo2中就可以访问到str和add()
//demo1.js内容
exports.str="hellow"
exports.hellow=function(){
console.log("1111")
}
//demo2.js内容
var demo1=require("./demo1.js")
console.log(demo1.str)
demo1.hellow()
npm包管理工具
什么是npm?
node package management:node包管理工具(主要管理模块)
模块:核心模块,文件模块
文件模块又分为:自定义模块,第三方模(· 第三方公司的模块)
npm就是用来管理和安装第三方模块的
npm命令详解
1,npm -v(version:版本)
npm -v查看当前npm的版本号
2,安装模块
命令:npm install model name(模块名称)
比如:安装jquery模块
npm install jquery
查看npm中模块清单的命令
npm list 这个命令会列出所有安装的第三方模块
卸载模块
npm uninstall mkname(模块名称)
卸载jquery就是 npm uninstall jquery
清单指令
npm list 当前所有的第三方模块列出来
查看给定模块的信息
npm info modelName(模块名字)
指定模块版本安装
npm install modename@版本号
package.json文件
package.json文件作用
1,用来描述工程信息
2,描述第三方模块之间的依赖
注意:1,通过npm init 指令来创建package.json
2,快速创建package.json文件的命令 npm init -y
3,给package.json文件增加模块依赖的指令
npm install 模块名称 --save(将模块增加到当前的package.json中)
模块对象的属性
什么是模块对象?
模块:核心模块(nodejs内置), 第三方模块(第三方组织发布), 自定义模块(开发人员)
每一个文件在nodejs平台上,每个文件都是一个模块。
定义了一个models他在模块内就是一个模块对象。每一个模块内定义了一个对象就是model(模块)
每一个model对象都代表当前模块。使用mode.exports时才能把整个模块文件作为一个对象抛出
模块对象的属性:exports就是model.exports定义属性。
将模块定以类的方式抛出
将模块定义分类
//class实在ECMAScript2015版本后加入的 es6
class关键字:确定了一个类型 student以类的概念存在
//创建一个student类
student.js内容:
class stydent {
//构造函数 是默认自动执行
//初始化name age 的属性
//如果在class不写构造函数类会自动初始化一个无参的构造函数
constructor(n,a){
this.name = n
this.age = a
}
//新建一个方法
add=function(naem,age){
console.log("this.name"+"今年"+this.age+"岁")
}
}
//把一个类按模块形式抛出
moudle.exports=student
demo.js内容:
//引入
var student =require(“./student.js”)
//通过类student实例化一个对象
var s1 =new student("tom",3)
s1.add()
npm发布流程
1,创建一个npm账号
2,登录npm账号
3,创建工程项目 npm init 包名称 -y
4,将工程项目包切换到npm
5,执行命令 npm publish
安装淘宝镜像
npm中的淘宝镜像 cnpm
镜像:把国外的数据放到国内的服务器上。
cnpm就是把npm平台上的模块功能文件,都放到淘宝的服务器上。国内用户访问就方便了。
npm install 模块,
cnpm把npm的功能都复制了一遍,npm的命令在cnpm上都可以使用。
注:使用 设置淘宝镜像地址
安装cnpm
通过npm指令来安装:npm install cnpm -g --registry=https://registry.npm.taobao.org
模块的管理
1,从node,modules文件夹下边加载
2,从package.json文件目录下加载
3,从全局目录中加载
注:
以上是关于nodejs第三天(核心模块与文件模块,核心模块和文件模块引入的区别,从模块外部访问模块内部,使用exports对象,npm包管理工具package.json文件,模块对象属性,将模块定义分类,npm的主要内容,如果未能解决你的问题,请参考以下文章
nodejs(第三篇):nodejs中的文件模块nodejs中的require与exportshttp模块补充JavaScript Standard Style