关于Nodejs中的模块

概念

Nodejs在ECMAScript的基础上扩展并封装了许多高级特性,如文件访问、网络访问等,使得Nodejs成为一个很好的Web开发平台。基于Nodejs这个平台将Web开发常用的一些功能进行封装,称为模块。

1.系统模块

1. 模块被加载后才能使用,Nodejs提供了全局的函数require加载模块。 1、os模块 获取当前操作系统信息 2、fs模块 文件读写操作 3、path模块 路径处理

2. require加载模块路径

相对路径: 如 ./ 或 ../

绝对路径: 如 E:\nodejs\02day\4-code\23cart 或 / (类unix系统)

直接写模块名会被当成系统模块或加载node_modules目录的模块。

2.文件模块( 模块也被称为包 )

npm 是第三方模块管理管理工具

是全局安装的 在任何地方打开命令行 就可以使用 npm config list 可以查看配置信息

使用npm可以安装、卸载、发布模块。

1、安装

  a) 本地安装,需要网络并且将下载的模块放到执行安装命令的目录,并且会自动创建node_modules 存放下载的模块,如果上一级目录已经存在 node_modules目录,则会安装至上一级目录.
      npm install 模块名称
  b) 全局安装,安装到默认c盘(C:\Users\(自己的用户名)\AppData\Roaming\npm\node_modules)
      npm install 模块名称 -g
  c) 关于本地安装还是全局安装 要根据使用方式     (模块文档 https//www.npmjs.com )
  如果是全局安装   一般都是提供一个命令行进行使用 如 lessc npm  
  如果是本地安装     一般都是使用 require()方法来使用
  d) 默认下地址 https//registry.npmjs.org
  通过 npm config set registry https://registry.npm.taobao.org
  从淘宝镜像库 下载 速度回快   5到10分钟 更新一次镜像库

2、卸载

  a) 本地卸载
    npm uninstall 模块名称
  b) 全局卸载
    npm uninstall 模块名称 -g
    卸载也可以直接删除文件

3、发布模块

  a) 注册用户,注册npm账号

  b) 编写模块

  c) 发布模块

  在模块目录执行 npm login,根据提示输入用户名、密码、邮箱进行登录,然后执行npm publish完成发布。

3.自己封装模块

  1. 建一个文件夹 即为模块名称

  2. 里面的文件

    add.js      //功能块
    index.js        //入口文件
    modify.js       //另一个功能
    package.js   //配置文件 此文件不用创建 可以用 npm init -y(一路yes)

    package文件内容

    {
    "name": "itcast40", //模块名 默认为文件夹名字
    "version": "1.0.0", //版本号
    "description": "", //描述
    "main": "index.js", //配置模块的入口
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "", // 作者
    "license": "ISC"
    }
  1. module.exports 对象 实现向模块外部,返回数据的方式

    Nodejs 为了简化模块内部方法或属性的公开,还提了exports 也可以实现与 module.exports 相类似(不是相同)的作用但是 不能传出对象

    例子:

    console.log('我是一个文件');
    let name = '我这个属性想在其他文件输出';

    function sayHi() {
    console.log('我这个方法想在其他文件输出');
    }
    module.exports.sayHi = sayHi;
    module.exports.abc = name;//可以使用 exports.sayHi = sayHi;
    exports.abc = name;//可以使用

    module.exports = {
    sayHi: sayHi,
    abc: name
    }//可以使用 exports = {
    sayHi: sayHi,
    abc: name
    }//不可以使用
    因为 Node 只是做了如下操作 exports = module.exports 在使过程,exports 不能直接被赋值一个对新对象 因为这样会断开与 module.exports 的联系
    那么也不能实现向外部模块公开内部数据的功能了。

Nodejs中关于模块的总结的更多相关文章

  1. Nodejs中cluster模块的多进程共享数据问题

    Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核 ...

  2. 在nodejs中引进模块要经历的步骤

    在nodejs中引入模块需要经历如下3个步骤 1.路径分析 2.文件定位 3.编译执行 在nodejs中模块分为两类,一类是nodejs提供的模块,称为核心模块,另一类的用户编写的模块,称为文件模块. ...

  3. Nodejs中的模块系统

    一.模块化的定义 ①具有文件作用域 ②具有通信规则:加载和导出规则 二.CommonJS模块规范 1.nodejs中的模块系统,具有文件作用域,也具有通信规则,使用require方法加载模块,使用ex ...

  4. node (02 CommonJs 和 Nodejs 中自定义模块)顺便讲讲module.exports和exports的区别 dependencies 与 devDependencies 之间的区别

    CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷.它的终极目标就是:提供一个类似 Python,Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序的阶 ...

  5. Node.js学习笔记(二) --- CommonJs和Nodejs 中自定义模块

    一. 什么是 CommonJs? JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器. 然而, JavaScript标准定义的 API 是为了构建基于浏览器的应用程序.并没有制定一 ...

  6. NodeJS中Buffer模块详解

    一,开篇分析 所谓缓冲区Buffer,就是 "临时存贮区" 的意思,是暂时存放输入输出数据的一段内存. JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一 ...

  7. TypeScript完全解读(26课时)_14.ES6和Nodejs中的模块

    创建modules文件夹,我们的文件都写在这里面 modules下面新建index.js文件,在index.ts内引入这个js文件 es6的模块 最主要的两个关键字 import和export imp ...

  8. Nodejs中Async模块的流程控制方法

    首先,使用Asycn模块需要安装,它不是node自带的.其次,该模块有大约20多个流程控制方法,我们在这里仅分析常用的series, parallel, waterfall, auto这四种,并且尽量 ...

  9. 浅谈nodejs中HTTP模块应用

    这里给大家分享下后端人员如果利用nodejs对数据的一些处理情况  适用于初学者使用 大牛勿喷 给大家分享下主要后端思想部分代码,前端部分就不展示了 const http = require(&quo ...

随机推荐

  1. Linux中文件函数(一)

    一.stat.fstat.fstatat.lstat函数 函数的原型为: #include <sys/stat.h> int stat(const char *restrict pathn ...

  2. 新花生壳+tomcat 发布javaWeb项目【亲测有效】

    一.新花生壳1.0 在花生壳官网(http://www.oray.com)上下载<新花生壳1.0>的安装软件,软件安装完成后,需要注册,注册成功后花生壳官网会给我们分配一个域名,样式大概为 ...

  3. 继续深入更新shell脚本容易出错的地方

    一.在shell中用到如果需要输入某些值,需要用到read -p命令 这是我写的猜数字游戏,一开始在输出的时候,屏幕上总会打印输出  "INT" 经过反复的练习才发现 双引号后面应 ...

  4. Python入门 —— 03GUI界面编程

    GUI(Graphical User Interface) 即图形用户接口,又称图形用户接口. 是指采用图形方式显示的计算机操作用户界面.GUI 是屏幕产品的视觉体验和互动操作部分. "你的 ...

  5. vue 新属性学习

    1, $listeners 父级元素 <base-input v-on:focus.native="onFocus"></base-input> 子级元素 ...

  6. MapReduce输入输出的处理流程及combiner

    MapReduce 的输入输出 MapReduce 框架运转在<key,value> 键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组 ...

  7. Spark运行模式_local(本地模式)

    本地运行模式 (单机) 该模式被称为Local[N]模式,是用单机的多个线程来模拟Spark分布式计算,直接运行在本地,便于调试,通常用来验证开发出来的应用程序逻辑上有没有问题. 其中N代表可以使用N ...

  8. Python的scrapy之爬取顶点小说网的所有小说

    闲来无事用Python的scrapy框架练练手,爬取顶点小说网的所有小说的详细信息. 看一下网页的构造: tr标签里面的 td 使我们所要爬取的信息 下面是我们要爬取的二级页面 小说的简介信息: 下面 ...

  9. 使用 Linux 下的的logrotate进行日志的切割

    实际生产中,使用一个log文件来记录所有信息的话,一方面,时间过久,就会占用很大的空间:另一方面,就是一个文件记录对于后期日志的查看非常不利.为了解决查看了一下资料,发现linux里面有一个logro ...

  10. DATA 转 16 进制

    // 转 16进制 编码 NSData *data = [NSData dataWithBytes:(const void *)dataOut length:(NSUInteger)dataOutMo ...