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. Vue.js(2.x)之列表渲染(v-for/key)

    1.v-for是Vue里的循环语句,与其他语言的循环大同小异.首先得有需要循环且不为空的数组,循环的关键字为in或of. 需要索引时的写法: v-for里的in可以使用of代替: 还可以使用v-for ...

  2. js绑定事件方法:addEventListener的兼容问题

    js的事件绑定方法中,ie只支持attachEvent,而FF和Chrome只支持addEventListener;严格来说:addEventListener只有IE9以上版本的IE浏览器上能够兼容, ...

  3. EPSG:4326

    简单说,"EPSG:4326"指的就是WGS84坐标系 参考 http://blog.csdn.net/cloverwindy/article/details/8663968 AU ...

  4. WIN7 64位对Excel操作异常

    在本地做Excel导出功能的测试时,报出“检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败”的异常,知道要对Excel进行D ...

  5. co-dialog弹出框组件-版本v2.0.0

    co-dialog theme 访问git:co-dialog 版本v2.0.0 主题2 coog.app('.theme2').use({ title: 'JUST CHECKING.', mess ...

  6. mysqlimport命令

    mysqlimport的大多数选项直接对应LOAD DATA INFILE子句. 选项: -u,--user 指定连接用户名.   -p,--password[name] 指定连接用户的密码.   - ...

  7. vim 编辑器的使用方法

    vim 命令模式       默认打开文件为命令模式 命令行模式     shift+: 命令行模式 编辑模式       i 编辑模式 Esc 切换命令模式 命令模式 -----字符操作 i   当 ...

  8. Jmeter命令行参数

    一.在linux中,使用非gui的方式执行jmeter.若需更改参数,必须先编辑jmx文件,找到对应的变量进行修改,比较麻烦.因此,可以参数化一些常用的变量,直接在Jmeter命令行进行设置 二.参数 ...

  9. python 进程之间的通讯

    python 进程之间的通讯 #!/usr/bin/env python #-*- coding:utf-8 -*- # author:leo # datetime:2019/5/28 10:15 # ...

  10. Web开发中,用到的4种会话跟踪技术

    会话跟踪:主要解决HTTP的无状态问题,即: 当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的.非连续的.当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话 ...