node七-required、缓存
学会查API,远比会几个API更重要。
核心模块意义
-如果只是在服务器运行javascript代码,并没有多大意义,因为无法实现任何功能>读写文件、访问网络
-Node的用处在于它本身还提供可一系列功能模块,用于与操作系统互动
-核心的功能模块在node中内置
常见核心模块
-path:处理文件路径
-fs:操作文件系统
-child_process:新建子进程
-util:提供一系列实用小工具
-http:提供http服务器功能
-url:用于解析URL
-querystring:解析URL中的查询字符串
-crypto:提供加密、解密功能
包的概念>NPM
什么是包
-由于node是一套轻内核的平台,虽然提供了一系列的内置模块,但是不能满足开发者的需求,于是出现了包的概念
-与核心模块类似,就是将一些预先设计好的功能或者API封装到一个文件夹,提供给开发者使用
包加载机制
-现在系统核心(优先级别最高)的模块中找 > 不要创建一些和现有的包重名的包
-然后再到当前目录node_modules目录中找
PATH > 路径操作模块
-在文件操作的过程中,都必须使用物理路径(绝对路径)
-相关API
--path.join([p1],[p2],[p3]) >> 连接多个路径
--path.basename(p,ext) >> 获取文件名,不包括后缀
--path.basename(p) >> 获取文件名,包括后缀
--path.dirname(p) >> 获取文件夹路径
--path.extname(p) >> 获取文件扩展名
--path.relative(from,to) >> 获取从from到to的相对路径
--path.delimiter >>获取不同操作系统中默认的路径分隔符。window是";"分号,Linux是":"冒号
--process.env 内部有一个path属性,其对应的就是环境变量
--path.parse(pathString) >> 将一个路径字符串转换为一个对象(包含文件目录,文件名,扩展名)
--path.format(pathObject) >> path.parse(pathString)相反
--path.isAbsolute(p) >> 判断一个路径是否是绝对路径
--path.normalize(p) >> 常规化路径--将一个书写不规范的路径转换成符合规范的路径
FS > 文件读取
-fs模块对文件的几乎所有操作都有同步和异步两种形式
--eg:readFile() 和 readFileSync()
-区别:
--同步调用会阻塞代码的执行,异步则不会
--异步调用会将读取任务下达到任务队列,知道任务执行完成才会回调
--异常处理区别,同步必须使用 try catch方式,异步可以通过回调函数的第一个参数
-代码测试案例

测试结果

--注意点:
---不论是同步还是异步,都会在其方法内设置编码格式,若不设置编码格式能输出结果是

输出结果则是以buffer的形式读取。读取文件时没有指定默认编码,默认读取的是一个Buffer(缓冲区)
什么是缓冲区
-缓冲区就是内存中操作数据的容器
-只是数据容器而已
-通过缓冲区可以很方便的操作做二进制数据
-而且在打文件操作时必须有缓冲区
为什么要有缓冲区
-JS是比较擅长处理字符串,但是早期的应用场景主要用于处理HTML文档,不会有太大篇幅的数据,也不会接触到二进制的数据。
-而在Node中操作数据、网络通信是没办法完全以字符串的方式操作的,所以在node中引入了一个二进制的缓冲区实现buffer
创建缓冲区
-创建长度为4个字节的缓冲区
-- var buffer = new Buffer(4);
-通过指定数据内容的方式创建
--var buffer = new Buffer([00,11]);
-通过指定编码的方式创建
--var buffer = new Buffer('nodon','utf8');
node七-required、缓存的更多相关文章
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
- 【转】MyBatis学习总结(七)——Mybatis缓存
[转]MyBatis学习总结(七)——Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualC ...
- node.js内存缓存的性能情况
1. WEB 服务性能测试和优化 1.1 测试环境搭建 网络环境:内网 压力测试服务器: 服务器系统:Linux 2.6.18 服务器配置:Intel® Xeon™ CPU 3.40GHz 4 C ...
- 从0到1学习node(七)之express搭建简易论坛
我们需要搭建的这个简易的论坛主要的功能有:注册.登录.发布主题.回复主题.下面我们来一步步地讲解这个系统是如何实现的. 总索引: http://www.xiabingbao.com/node/2017 ...
- 用node探究http缓存
用node搞web服务和直接用tomcat.Apache做服务器不太一样, 很多工作都需要自己做.缓存策略也要自己选择,虽然有像koa-static,express.static这些东西可以用来管理静 ...
- Django(七)缓存、信号、Form
大纲 一.缓存 1.1.五种缓存配置 1.2配置 2.1.三种应用(全局.视图函数.模板) 2.2 应用多个缓存时生效的优先级 二.信号 1.Django内置信号 2.自定义信号 三.Form 1.初 ...
- node响应头缓存设置
我把react项目分成4个板块,在路由的顶层 今天在手机上打开react项目的时候,发现平级路由跳转时某一个图片较多的板块图片总是渲染得很慢,这分明是重新发起请求了. 然后我先查一下react-rou ...
- node(Buffer缓存区)
// 创建buffer类 var buf=new buffer(10); var buf=new buffer([10,20,30,40]); var buf=new buffer("www ...
- MyBatis学习总结(七)——Mybatis缓存
一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...
随机推荐
- 你可能不知道的5种 CSS 和 JS 的交互方式
翻译人员: 铁锚 翻译日期: 2014年01月22日 原文日期: 2014年01月20日 原文链接: 5 Ways that CSS and JavaScript Interact That You ...
- android MVP框架
原文地址:http://blog.csdn.net/guxiao1201/article/details/40147209 在开发Android应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构 ...
- AngularJS进阶(二十)HTML5实现获取地理位置信息并定位功能
HTML5实现获取地理位置信息并定位功能 注:请点击此处进行充电! 前言 这篇文章主要介绍了HTML5实现获取地理位置信息并定位功能,本文讲解了原生HTML5.百度地图.谷歌地图等三种获取理位置信息并 ...
- 从硬件竞争到软实力PK——电视媒体竞争观察
本文观点及数据摘自中广研究<三网融合月度精粹>第26期(2013年2月版),详细参考对应在线简版(http://doc.sarft.net/index.php?f=2013/02/2013 ...
- 写一个dup2功能相同的函数,不能调用 fcntl 函数,并且要有出错处理
实现的时候用到系统原来的dup函数 // mydup2.c // 2015/08/17 Lucifer Zhang version1.0 // write my own dup2 function / ...
- OpenCV矩阵运算
矩阵处理 1.矩阵的内存分配与释放 (1) 总体上: OpenCV 使用C语言来进行矩阵操作.不过实际上有很多C++语言的替代方案可以更高效地完成. 在OpenCV中向量被当做是有一个维数为1的N维矩 ...
- Linux文件系统构成(第二版)
Linux文件系统构成 /boot目录: 内核文件.系统自举程序文件保存位置,存放了系统当前的内核[一般128M即可] 如:引导文件grub的配置文件等 /etc目录: 系统常用的配置文件,所以备份系 ...
- 苹果新的编程语言 Swift 语言进阶(十四)--扩展
扩展是为一个已经存在的类.结构.枚举类型添加新功能的一种方式,包括为不能存取源代码的那些已经存在的类型添加功能. 扩展类似于Objective-C语言中的类别,与类别不同的是Swift语言的扩展没有名 ...
- Android的Context Manager(服务管理器)源码剖析-android学习之旅(99)
Context Manager介绍 Context Manager对应的进程是servicemanager进程,它先于Service Server和服务客户端运行,进入接收IPC数据的待机状态,处理来 ...
- LeetCode(39)-Intersection of Two Linked Lists
听歌曲初爱有感: 开头啰嗦两句,刚在做算法题目的时候,听到了杨宗纬的<初爱>,突然有了一种本科时候的感觉,想想自己现在研二了,青春喂了狗,我果断喝了一罐啤酒,循环这首歌到吐-.. 题目: ...