Nodejs中关于模块的总结
关于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.自己封装模块
建一个文件夹 即为模块名称
里面的文件
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"
}
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中关于模块的总结的更多相关文章
- Nodejs中cluster模块的多进程共享数据问题
Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核 ...
- 在nodejs中引进模块要经历的步骤
在nodejs中引入模块需要经历如下3个步骤 1.路径分析 2.文件定位 3.编译执行 在nodejs中模块分为两类,一类是nodejs提供的模块,称为核心模块,另一类的用户编写的模块,称为文件模块. ...
- Nodejs中的模块系统
一.模块化的定义 ①具有文件作用域 ②具有通信规则:加载和导出规则 二.CommonJS模块规范 1.nodejs中的模块系统,具有文件作用域,也具有通信规则,使用require方法加载模块,使用ex ...
- node (02 CommonJs 和 Nodejs 中自定义模块)顺便讲讲module.exports和exports的区别 dependencies 与 devDependencies 之间的区别
CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷.它的终极目标就是:提供一个类似 Python,Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序的阶 ...
- Node.js学习笔记(二) --- CommonJs和Nodejs 中自定义模块
一. 什么是 CommonJs? JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器. 然而, JavaScript标准定义的 API 是为了构建基于浏览器的应用程序.并没有制定一 ...
- NodeJS中Buffer模块详解
一,开篇分析 所谓缓冲区Buffer,就是 "临时存贮区" 的意思,是暂时存放输入输出数据的一段内存. JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一 ...
- TypeScript完全解读(26课时)_14.ES6和Nodejs中的模块
创建modules文件夹,我们的文件都写在这里面 modules下面新建index.js文件,在index.ts内引入这个js文件 es6的模块 最主要的两个关键字 import和export imp ...
- Nodejs中Async模块的流程控制方法
首先,使用Asycn模块需要安装,它不是node自带的.其次,该模块有大约20多个流程控制方法,我们在这里仅分析常用的series, parallel, waterfall, auto这四种,并且尽量 ...
- 浅谈nodejs中HTTP模块应用
这里给大家分享下后端人员如果利用nodejs对数据的一些处理情况 适用于初学者使用 大牛勿喷 给大家分享下主要后端思想部分代码,前端部分就不展示了 const http = require(&quo ...
随机推荐
- 中国软件大会上大快搜索入选中国数字化转型TOP100服务商
大快搜索自荣获“2018中国大数据企业50强”殊荣,12月20日在由工信部指导,中国电子信息产业化发展研究院主办的2018中国软件大会上,大快搜索获评“2018中国大数据基础软件领域领军企业”称号,入 ...
- CAT 安装运行配置教程
CAT安装教程 首先安装mysql数据库,具体步骤参阅<mysql免安装教程>--http://www.cnblogs.com/halberts/p/8723938.html 下载CAT代 ...
- Linux3.5—视屏模块学习与分析
插入USB摄像头后,我看到了识别出的一些信息,在内核源码中搜到了相关信息: 搜索之后,在uvc_driver.c 帮助文档:linux-3.5/Documentation/video4linux/v4 ...
- python教程(二)·变量
什么是变量?在百度百科中,变量的解释是: 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过-- 这是一段很长很长的解释,其实,作者认为没必要这么机械式的去理解.简单说,变量 ...
- C语言Windows程序开发—MessageBox函数介绍【第01天】
(一)MessageBox函数的参数介绍: int MessageBox ( HWND hWnd, //弹出MessageBox对话框所属的窗口句柄 LPCTSTR lpText, //指向Messa ...
- Qt udp 主机和虚拟机无法互相广播
描述: 主机和虚拟机可以ping通,port没被占用,虚拟机可以向主机广播,但是主机不能向虚拟机广播 原因: 虚拟机只配置了一个适配器,而主机有多个适配器,当虚拟机广播时,只能使用和主机连接的适配器, ...
- 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建、调试输出和建立时间系统
我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...
- C/S与B/S 区别以及优缺点
1.什么是C/S结构 C/S (Client/Server)结构,即客户机和服务器结构.它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现 ...
- WPF ResourceDictionary 主题资源替换
原文:WPF ResourceDictionary 主题资源替换 当我们需要在程序中替换主题,更换另一套背景.颜色.样式时,如何在不修改资源Key值,直接替换呢? 问题&疑问 1. Key值冲 ...
- BZOJ1821_Group部落划分_KEY
题目传送门 这是一道并查集的题目,相信很多人都看出来了. 用一个类似Kurskal的东西求出最近的最大值. 对于一些可以划分在同一个部落里的边,我们一定是优先选择短边合并. code: /****** ...