Nodejs-模块化结构
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-模块化结构的更多相关文章
- JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!
前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!2016-09-29 17 ...
- 浅析 Nodejs 模块化
本文只讨论 CommonJS 规范,不涉及 ESM 我们知道 JavaScript 这门语言诞生之初主要是为了完成网页上表单的一些规则校验以及动画制作,所以布兰登.艾奇(Brendan Eich)只花 ...
- nginx模块化结构
NGINX是一个免费.开源.高性能.轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器 特点: 占有内存少,并发能力强 Nginx的优点: 模块化.事件驱动.异步.非阻 ...
- nodejs模块化标准
commonjs 导出一个 a.js function add(a, b){ return a+b; } module.exports = add; b.js const add = require( ...
- nodejs的第三天学习笔记
一. CommonJS 规范 1.1nodejs 与 commonjs 之间的关系: 1)nodejs是一种服务器语言. a)开启服务的能力 b)文件读写的能力 服务器:就是一台安装了服务软件 2)c ...
- 转: Nodejs概述
目录 简介 安装与更新 版本管理工具nvm 基本用法 REPL环境 异步操作 全局对象和全局变量 模块化结构 概述 核心模块 自定义模块 fs模块 Stream模式 http模块 实例:搭建一个HTT ...
- js模块化入门与commonjs解析与应用
JS模块化的基本原理 commonjs规范 commonjs在前端模块化中的基本使用 AMD与CMD规范剖析博客链接 一.JS模块化基本原理 在JS没有提出来模块化的时候,开发JS项目比较简单,同时也 ...
- 小白菜初探nodejs
记得大四那年实习的时候出去找工作,就常常听见大家说node.从那以后,悄然埋下了一颗学习nodejs的心.不过由于基础太薄弱,一直没有学习.加之工作上没有相关应用,就一直搁置到现在. 年会的时候,老大 ...
- NodeJs - 100
Nodejs官方文档 https://nodejs.org/en/docs/ Nodejs官方网站 https://nodejs.org/en/ Nodejs的特征: 1.采用非阻塞性IO机制:—— ...
- Nginx源码结构
上一章对Nginx的架构有了一个初步的了解.这章,为了对源码仔细的剖析,先要对Nginx的源码结构有一个了解.从宏观上把握源码模块的结构. 一.nginx源码的3个目录结构 在安装的nginx的目录下 ...
随机推荐
- Second Highest Salary
Write a SQL query to get the second highest salary from the Employee table. +----+--------+ | Id | S ...
- 属性,选择器和css
一.属性 属性:表示事物的一些特征 属性分为标签属性和样式属性 标签属性:<img src="1.jpg" width="200px" heifht=&q ...
- Browser Screen
Screen对象 Screen对象包含有关客户端显示屏幕的信息. 注释:没有应用于screen对象的公开标准,不过所有浏览器都支持该对象. Screen对象属性 availHeight 返回显示屏幕的 ...
- label+input实现按钮开关切换效果
label+input实现按钮开关切换效果 <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- java.lang.IllegalArgumentException: Document base F:\personal\projects\annoMVC\web does not exist or is not a readable directory
tomcat明明在d盘,怎么到F盘了...纳闷啊... 解决办法: 1停掉Tomcat服务2把/conf/Catalina/localhost下的文件删除掉(我在这个文件夹里发现了一个xml,指向了F ...
- 事件(Application Event)
Spring的事件(Appllcation Event)为Bean与Bean之间的消息通信提供了支持.当一个Bean处理完一个任务后,希望另一个Bean知道并能做相应的处理,这种情况可以让另一个Bea ...
- 3D向2D投影
http://blog.sina.com.cn/s/blog_536e0eaa0100jn7j.html
- JFinal常量配置学习笔记
在继承 JFinalConfig 类时,需要 实现 /** * Config constant */ public abstract void configConstant(Constants me) ...
- SQLServer从其他表获取的数据更新该表的一部分
在网上常见的是update a set username = username FROM b on a.userid=b.userid,该更新语句是对a表中所有行进行更新.如果只更新一部 ...
- squid隐藏squid的版本号
reply_header_access Via deny all reply_header_access Cache-Control deny all reply_header_access Serv ...