位置: 编程技术 - 正文

Nodejs极简入门教程(一):模块机制(node.js教程详细)

编辑:rootadmin

推荐整理分享Nodejs极简入门教程(一):模块机制(node.js教程详细),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node js教程,nodejs基础,nodejs基础,node.js速成,nodejs实战教程,nodejs基础教程,nodejs实战教程,nodejs快速入门,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript 规范(ECMAScript)没有定义一套完善的能适用于大多数程序的标准库。CommonJS 提供了一套 JavaScript 标准库规范。Node 实现了 CommonJS 规范。

模块基础

在 Node 中,模块和文件是一一对应的。我们定义一个模块:这里将需要导出的函数加入到 exports 对象。模块的局部变量外部无法访问(例如,上例中的 PI 变量)。调用 require 载入模块 circle.js:附带提及一下的是,模块中,存在一个 module 对象,表示模块本身,exports 则为 module 的属性。

模块的加载

Node 会对加载过的模块进行缓冲,避免再次加载的开销:

多次加载模块 test.js

当加载文件没有后缀时,Node 会尝试添加后缀并加载:

1..js(JavaScript 源文件)2..node(C/C++ 扩展模块)3..json(JSON 文件)

模块主要有几类:

1.核心模块。核心模块已经被编译到了 Node 中,我们在其源码中的 lib 目录可以找到这些核心模块。常见的核心模块:net、http、fs 模块等

2.文件模块。文件模块通过一个相对或者绝对路径加载,例如我们上面看到的 circle.js

3.自定义模块。自定义模块位于 node_modules 目录中,我们通过 npm 安装的各种模块就放置在 node_modules 目录中

核心模块总是优先被加载,假如有一个自定义模块 http,那么加载时仍然会加载核心模块 http 而非自定义模块 http。在加载自定义模块时,首先查找当前目录下的 node_modules 目录,而后查找父目录下的 node_modules 目录,以此类推,直到根目录。

require 加载的模块不是一个文件,而是一个目录时,这样的目录被叫做包(package)。包中存在一个名为 package.json 的文件(包描述文件),例如:

其中 main 指出需要被加载的模块。如果包中不存在 package.json 或者 package.json 中未指定 main 模块,那么 Node 将会尝试加载 index.js、index.node、index.json。

在加载 JavaScript 模块时,被加载的模块被包裹在一个函数中:

Nodejs极简入门教程(一):模块机制(node.js教程详细)

每个 JavaScript 模块访问到的 module、exports、__filename、__dirname 等实际上是通过函数参数传递进来的。由于这种包裹,才使得模块的局部变量外部无法访问。但有时候也会出现让人难以理解的问题,例如:

test1.js

test2.js

加载这两个模块:

exports 作为参数传递给模块,我们通过 exports.x 自然可以给 exports 对象添加属性(或方法),但直接给 exports 赋值(例如,exports = x)仅仅是改变了形参而非实参的值,因此:

1.为 exports 添加属性时,使用 exports2.为 exports 赋值时,使用 module.exports

按 CommonJS 的规范,一个完整的包应该包含有:

1.package.json 包描述文件2.bin 二进制文件目录3.lib JavaScript 代码目录4.doc 文档目录5.test 测试代码目录

NPM 是一个 Node 的一个包管理工具。常见用法:

查看命令的文档:

查看命令 install 的文档。

安装一个包:安装 redis 这个包。install 命令会将包安装在当前目录下的 node_modules 目录中。

移除一个包:移除 redis 这个包。remove 命令会将当前目录下的包移除掉。

Nodejs极简入门教程(二):定时器 setTimeout和clearTimeoutvarobj=setTimeout(cb,ms);setTimeout用于设置一个回调函数cb,其在最少ms毫秒后被执行(并非在ms毫秒后马上执行)。setTimeout返回值可以作为c

Nodejs极简入门教程(三):进程 Node虽然自身存在多个线程,但是运行在v8上的JavaScript是单线程的。Node的child_process模块用于创建子进程,我们可以通过子进程充分利用CPU。范例:varfork=

年最火的Node.JS后端框架推荐 Node.js框架是可以帮助你建立网站应用服务的javascript框架。它可以帮助你更快地开发Web应用Node.js是基于Chrome的JavaScript运行环境。可方便地构建快速、可

标签: node.js教程详细

本文链接地址:https://www.jiuchutong.com/biancheng/374280.html 转载请保留说明!

上一篇:node.js中的path.isAbsolute方法使用说明(Node.js中的事件循环是什么)

下一篇:Nodejs极简入门教程(二):定时器(node.js教程详细)

  • 增值税普通
  • 减免附加税怎么填报
  • 5元印花税怎么申报
  • 新成立公司交税
  • 税控设备抵减增值税必须当月抵减吗
  • 上月已收款,本月开的票怎么做分录
  • 减免税额和抵免的区别
  • 专家咨询费个人所得税怎么计算
  • 应缴纳企业所得税税额怎么算
  • 企业承担个人所得税的规定
  • 一般纳税人要交的税种有几种
  • 契税计税依据是否包含耕地占用税
  • 什么是简易征收办法征收增值税
  • 2017小规模纳税人标准
  • 发票首次核定
  • 六税两费减半征收政策2022
  • 亏损企业所得税汇算清缴怎么做
  • 股份有限公司发行的股票溢价
  • 内部收益率计算公式及例题
  • 微信支付宝余额为零的表情包
  • 建筑公司异地预缴增值税
  • 出口视同内销补缴增值税会计分录?
  • 如何关闭windowsdefender防病毒
  • win10专业版激活密钥永久2023
  • 医生规培生补贴每年多少钱
  • 为什么我的win10
  • 绝地求生闪退怎么解决win10
  • 如何搭建chatGPT
  • php 替换函数
  • 蔚蓝色的海王星是什么歌
  • Win11 Build 23435 预览版今日发布: 文件管理器引入图库功能
  • 模型调参是调节什么
  • 计算机还热门吗
  • linux调试工具有哪些
  • 税收返还会计处理办法
  • 先款还是先票
  • 厂房推倒重建和改扩建的税务处理
  • 帝国cms模型
  • 如果没有抄税就申报了
  • 工会经费计提按应付职工薪酬借方还是贷方?
  • 公司开一般户需要多久
  • 财务会计和预算会计金额可以不等吗
  • 当月收入未开票怎么入账
  • 水泥贸易利润
  • 公司收到拆迁补偿金,于评估公司的区别
  • 私车公用属于违反什么纪律
  • 商场一般是怎么缴纳租金的
  • 刚成立公司没有发生业务,如何申报企业所得税
  • 购进固定资产没有发票怎么入账
  • 评估价与成交价差距叫做什么
  • 以前年度的损益调整为负值说明什么
  • 当月暂估入账跨月怎么算
  • 小规模企业应交税费二级科目
  • 营业外收入记入企业的什么
  • 制造企业费用会计
  • 销售单位收入和税收
  • 违约金罚款计入什么科目
  • 印花税申报流程视频
  • 工人的工资占企业的比例
  • 为什么工程施工图纸不能泄露
  • 厂家给的促销费可以退吗
  • 不开票收据可以盖章吗
  • 固定资产为什么提折旧,有何实际意义
  • win8.1运行Java程序网页出现空白等问题如何解决
  • 让xp系统自动修复软件
  • 更改mac地址值
  • linux常用命令grep
  • javascript:window.top.space_additem
  • ubuntu用root运行
  • Node.js中的事件循环是什么
  • NGUI的depth和Z轴的关系
  • jquery遍历li
  • python的链表
  • 使用筷子就餐会不会传染乙肝病毒
  • android判断应用是否在前台
  • 简述python语言
  • js 上传
  • 百旺税控盘口令认证失败pin锁定怎么办
  • 电子税务局怎么缴纳社保费
  • 公司完税证明去哪里开具
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设