位置: 编程技术 - 正文

简单模拟node.js中require的加载机制(简单模拟电路图)

编辑:rootadmin

推荐整理分享简单模拟node.js中require的加载机制(简单模拟电路图),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:简单模拟器下载,简单模拟电路图,简单模拟温度测量电路设计仿真图,简单模拟ATM机取款操作,简单模拟用户登录过程,输入账号和密码,简单模拟器,简单模拟用户登录过程,输入账号和密码,简单模拟用户登录过程,输入账号和密码,内容如对您有帮助,希望把文章链接给更多的朋友!

一、先了解一下,nodejs中require的加载机制

1、require的加载文件顺序

require 加载文件时可以省略扩展名:

require('./module');

// 此时文件按 JS 文件执行

require('./module.js');

// 此时文件按 JSON 文件解析

require('./module.json');

// 此时文件预编译好的 C++ 模块执行

require('./module.node');

// 载入目录module目录中的 package.json 中main指向的文件

require('./module/default.js');

// 载入目录module 中的index.js文件

通过 ./ 或 ../ 开头:则按照相对路径从当前文件所在文件夹开始寻找模块;

require('../file.js'); => 上级目录下找 file.js 文件

通过 / 开头:则以系统根目录开始寻找模块;

require('/Users/iceStone/Documents/file.js'); => 以绝对路径的方式找,没有任何异议

简单模拟node.js中require的加载机制(简单模拟电路图)

如果参数字符串不以“./“ 或 ”/“ 开头,则表示加载的是一个默认提供的核心模块(位于 Node 的系统安装目录中):

require('fs'); => 加载核心模块中的文件系统模块

或者从当前目录向上搜索 node_modules 目录中的文件:

require('my_module'); => 各级 node_modules 文件夹中搜索 my_module.js 文件;

如果 require 传入的是一个目录的路径,会自动查看该目录的 package.json 文件,然后加载 main 字段指定的入口文件

如果package.json文件没有main字段,或者根本就没有package.json文件,则默认找目录下的 index.js 文件作为模块:

require('./calcuator'); => 当前目录下找 calculator 目录中的 index.js 文件

2、require缓存

第一次加载某个模块时,Node 会缓存该模块。以后再加载该模块,就直接从缓存取出该模块的 module.exports 属性(不会再次执行该模块)

如果需要多次执行模块中的代码,一般可以让模块暴露行为(函数),模块的缓存可以通过 require.cache 拿到,同样也可以删除

3、所有代码都运行在模块作用域,不会污染全局作用域。

二、模拟require函数

require的加载内部比较复杂,下面让我们进行简单的模拟加载

require的简单实现机制为:

将传入的模块id通过加载规则找到对应的模块文件

读取这个文件里面的代码

通过拼接方式为该段代码构建私有空间

执行该代码

拿到module.exports 返回

上面的模块测试使用的两个模块

总结

标签: 简单模拟电路图

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

上一篇:NodeJS使用formidable实现文件上传(nodejs使用场景)

下一篇:node.js文件上传处理示例(nodejs文件上传服务器)

  • 电子税务局附加税带不出来
  • 账面成本包含增值税吗
  • 冲红的发票税款计提分录要冲红吗
  • 质量体系证费用计入什么科目
  • 小规模企业能否抵扣
  • 季度预交所得税可以弥补上年度亏损吗
  • 合并报表营业收入怎么算出来的
  • 社保费公司部分怎么算
  • 委托加工直接对外销售的消费税
  • 收据可以盖发票专用章吗有效吗
  • 给员工购买意外险进项税能不能抵扣
  • 应付股利一直挂账怎么办
  • 工伤事故赔偿项目表
  • 已计提的固定资产减值准备累计金额
  • 公司转让注册资金怎么弄
  • 个体工商户增值税怎么计算
  • 股东退股分红怎么拿回
  • 申报财产租赁合同印花税是在什么情况下?
  • 从农民手中购进农产品进项税
  • 发票开具税收分类是什么意思?
  • 意外保险计入职工薪酬
  • 建筑企业在增值税方面新出台的政策
  • 会议费报销注意事项
  • 工程项目关闭
  • 企业的其他业务收入有
  • 收到多开的发票会计上怎么入成本?
  • 企业里工会
  • 农机公司也要缴残保金吗
  • 成本分摊会计
  • 电脑到u盘
  • win11更新补丁如何删除
  • 原始凭证填的基数怎么填
  • 财产保险公司手续费税前扣除最新
  • 若依框架权限控制
  • 来料加工企业需注意什么
  • 固定资产加速折旧优惠明细表怎么填
  • 提取备用金记账凭证图片
  • 房地产企业预缴增值税如何申报
  • taskset 绑定cpu
  • 关联方计提坏账吗
  • 出纳对现金的收付应该怎么做
  • mongodb $nin
  • 日用品开增值税专用发票可以抵扣吗
  • 企业分红所得税
  • 个体工商户纳税申抿
  • 待摊费用属于企业的债权
  • 消费税的计税方式有哪几种?
  • 国外佣金算什么费用比较好
  • 房地产结转收入的条件
  • 过期食品返厂会重新打日期吗
  • 4s店出售试驾车账务处理
  • 工会经费缴纳会计分录
  • 开出普票会计分录
  • mysql优化的几种方法
  • Windows Sever 2016技术预览版3 本月发布
  • ubuntu怎么安装包
  • vmware虚拟机不能识别iso
  • 360卫士重装电脑够进入不了桌面
  • linux 更新系统
  • u盘安装mac系统
  • windowsqq截屏
  • win7诊断策略服务未运行是电脑问题还是网络
  • mac safari浏览器网页不能正常显示
  • centos 7安装桌面
  • 电脑开机出现windows7
  • cocos2dx-js
  • 狗刨教学视频新手入门
  • opengl transform
  • win7支持快速启动吗
  • angular做app
  • nodejs怎么学
  • shell 比较大小
  • python的threadpool
  • 简单的jquery插件实例
  • js类的实现
  • javascript基础入门视频教程
  • div跟随滚动条移动
  • html折叠
  • 中国移动的电子协议推送服务是什么
  • 江苏税务局电子
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设