1.模块(一个文件就是一个模块)

    

  

  获取当前脚本所在的路径
   _ _dirname
  文件路径
   _ _filename

(1)创建模块(module1.js)

const fs=require('fs');
//所有的文件操作都必须是绝对路径(物理路径)
fs.readFile(__dirname+'/../list.md',(error,content)=>{
if(error){
throw error;
}
console.log(content.toString());
});

(2)载入模块(011.js)

const moudel1=require('./modules/module1.js');//载入模块

(3)执行node 011.js可以拿到module1.js中的东西

  路径位置:

  

  执行结果:

  

2.module(模块对象)

  

  

3.exports

  映射到module.exports的别名

  module.exports{};

  var exports=module.exports{};

4.require

  (1)Node使用CommonJS模块规范,内置的require函数用于加载模块文件

  (2)require的基本功能是,读入并执行一个JavaScript文件,然后返回该模块的exports对象

  如果没有发现指定模块,会报错

  require不仅仅可以载入JS模块,也可以载入JSON对象(大部分用于读取配置信息)

  

5.模块缓存

  (1)第一次加载某个模块时,Node会缓存该模块。以后再加载该模块,就直接从缓存中取出该模块。

  module.exports属性不会再次执行该模块

  04.js

//模块的缓存,setInterval中的箭头函数每隔一秒执行一次
setInterval(()=>{
var date=require('./modules/module3.js');
console.log(date.getTime());
},1000);

 module3.js

module.exports=new Date();//导出成员

  

  

 (2)如何得到缓存和删除缓存

  得到缓存,通过require.cache

  require.cache记录node应用程序启动过程中所有的缓存

//模块的缓存
setInterval(()=>{
var date=require('./modules/module3.js');
console.log(require.cache);
},1000);

  

  删除缓存,通过delete require.cache[key],一般不会清空缓存的,除非更新JSON数据的时候,要更新,就要清空缓存

//模块的缓存
setInterval(()=>{
Object.keys(require.cache).forEach((key)=>{
delete require.cache[key];//不能直接删除用delete require.cache,要进行遍历,把里面的成员删掉
});
var date=require('./modules/module3.js');
console.log(date.getTime());
},1000);

  

  

Nodejs-模块化结构的更多相关文章

  1. JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!

    前端开发一些常用技巧               模块化结构       &&&&&     命名空间处理 奇技淫巧!!!!!!2016-09-29    17 ...

  2. 浅析 Nodejs 模块化

    本文只讨论 CommonJS 规范,不涉及 ESM 我们知道 JavaScript 这门语言诞生之初主要是为了完成网页上表单的一些规则校验以及动画制作,所以布兰登.艾奇(Brendan Eich)只花 ...

  3. nginx模块化结构

    NGINX是一个免费.开源.高性能.轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器 特点: 占有内存少,并发能力强 Nginx的优点: 模块化.事件驱动.异步.非阻 ...

  4. nodejs模块化标准

    commonjs 导出一个 a.js function add(a, b){ return a+b; } module.exports = add; b.js const add = require( ...

  5. nodejs的第三天学习笔记

    一. CommonJS 规范 1.1nodejs 与 commonjs 之间的关系: 1)nodejs是一种服务器语言. a)开启服务的能力 b)文件读写的能力 服务器:就是一台安装了服务软件 2)c ...

  6. 转: Nodejs概述

    目录 简介 安装与更新 版本管理工具nvm 基本用法 REPL环境 异步操作 全局对象和全局变量 模块化结构 概述 核心模块 自定义模块 fs模块 Stream模式 http模块 实例:搭建一个HTT ...

  7. js模块化入门与commonjs解析与应用

    JS模块化的基本原理 commonjs规范 commonjs在前端模块化中的基本使用 AMD与CMD规范剖析博客链接 一.JS模块化基本原理 在JS没有提出来模块化的时候,开发JS项目比较简单,同时也 ...

  8. 小白菜初探nodejs

    记得大四那年实习的时候出去找工作,就常常听见大家说node.从那以后,悄然埋下了一颗学习nodejs的心.不过由于基础太薄弱,一直没有学习.加之工作上没有相关应用,就一直搁置到现在. 年会的时候,老大 ...

  9. NodeJs - 100

    Nodejs官方文档 https://nodejs.org/en/docs/ Nodejs官方网站 https://nodejs.org/en/ Nodejs的特征:  1.采用非阻塞性IO机制:—— ...

  10. Nginx源码结构

    上一章对Nginx的架构有了一个初步的了解.这章,为了对源码仔细的剖析,先要对Nginx的源码结构有一个了解.从宏观上把握源码模块的结构. 一.nginx源码的3个目录结构 在安装的nginx的目录下 ...

随机推荐

  1. servlet和jsp存值和取值的方式

    在servlet和jsp中存值和取值的方式由两种 1种是setAttribute和getAttribute 2种是c:forEach

  2. Spring之Quartz定时任务和Cron表达式详解

    1.定时业务逻辑类 public class ExpireJobTask { /** Logger */ private static final Logger logger = LoggerFact ...

  3. a标签常用跳转

    1.a标签跳转qq <a href="http://wpa.qq.com/msgrd?v=3&uin=123456789&site=qq&menu=yes&qu ...

  4. weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架

    写在前面的话: weex官方文档不完善,在整个实施过程中遇到过很多坑,中途几次想放弃,总是有些不甘心.攻坚克难,总也是会有一些收获,先将收获进行分享也或是记录,防止忘记.要想用好weex必须对es5/ ...

  5. 用weex create 创建app项目 报 ERROR in index.web.js from UglifyJs 错误!

    用weex create创建一个APP项目,安装依赖后运行报 这个是package.json index.web.js 在dist目录下是build时生成的. 上面的答案没有给大家细节,不好意思致歉下 ...

  6. bootstrapValidator 重置表单

    最近在公司做业务系统后台,用的js框架还是jquery  ui框架 是以bootstrap为基础的beyondadmin-v1.4.s3这套,用起来还挺不错,所以公司所有的后台ui都使用这套.这套ui ...

  7. 【MFC】获取文件大小的方法

    [转载]原文地址:http://blog.csdn.net/coderwu/article/details/5652056 MFC 下可以通过 CFileStatus 获取文件大小. ULONGLON ...

  8. linux 命令——37 date (转)

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...

  9. IOS 截屏(保存到相册中)

    @interface NJViewController () /** * 点击截屏按钮 */ - (IBAction)captureView:(UIButton *)sender; /** * 白色v ...

  10. hdu-1179 Ollivanders: Makers of Fine Wands since 382 BC.---二分图匹配模板

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1179 题目大意: 有n个人要去买魔杖,有m根魔杖(和哈利波特去买魔杖的时候一样,是由魔杖选人).接下 ...