学会查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、缓存的更多相关文章

  1. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  2. 【转】MyBatis学习总结(七)——Mybatis缓存

    [转]MyBatis学习总结(七)——Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualC ...

  3. node.js内存缓存的性能情况

    1. WEB 服务性能测试和优化 1.1   测试环境搭建 网络环境:内网 压力测试服务器: 服务器系统:Linux 2.6.18 服务器配置:Intel® Xeon™ CPU 3.40GHz 4 C ...

  4. 从0到1学习node(七)之express搭建简易论坛

    我们需要搭建的这个简易的论坛主要的功能有:注册.登录.发布主题.回复主题.下面我们来一步步地讲解这个系统是如何实现的. 总索引: http://www.xiabingbao.com/node/2017 ...

  5. 用node探究http缓存

    用node搞web服务和直接用tomcat.Apache做服务器不太一样, 很多工作都需要自己做.缓存策略也要自己选择,虽然有像koa-static,express.static这些东西可以用来管理静 ...

  6. Django(七)缓存、信号、Form

    大纲 一.缓存 1.1.五种缓存配置 1.2配置 2.1.三种应用(全局.视图函数.模板) 2.2 应用多个缓存时生效的优先级 二.信号 1.Django内置信号 2.自定义信号 三.Form 1.初 ...

  7. node响应头缓存设置

    我把react项目分成4个板块,在路由的顶层 今天在手机上打开react项目的时候,发现平级路由跳转时某一个图片较多的板块图片总是渲染得很慢,这分明是重新发起请求了. 然后我先查一下react-rou ...

  8. node(Buffer缓存区)

    // 创建buffer类 var buf=new buffer(10); var buf=new buffer([10,20,30,40]); var buf=new buffer("www ...

  9. MyBatis学习总结(七)——Mybatis缓存

    一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...

随机推荐

  1. log4j.xml示例

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SY ...

  2. IE11开发人员工具 js脚本debugger调试

    微软在浏览器IE11中对F12开发人员工具的UI进行了彻底的换脸,虽然有诸多的不习惯但也是有方便之处的,比如我们用到的最多的断点调试,在F12调试状态下会加载出页面的js脚本文件,而需要对某个文件中的 ...

  3. python屏幕的交互(读取输出信息)input,raw_input的区别

    >>> input("your name?") your name?sam Traceback (most recent call last):   File & ...

  4. shell的date命令:使用方法,以及小时、分钟的计算

    shell命令格式严格,不像python那样命令行中可以添加空格.如等号两边无空格.有多余空格错误,日期date命令就是最明显的例子. 命令格式: date [-u] [-d datestr] [-s ...

  5. [前端]Emmet 基本语法快查

    Emmet 是一种快速写html的语法,通过几个简单的缩写,就可以拓展成html标签,工作中写html多多少少会有一些,使用的语法都是基础语法,这里总结下最常用的几个,备查. 这个插件支持非常多的ID ...

  6. 四种简单的图像显著性区域特征提取方法-----AC/HC/LC/FT。

    四种简单的图像显著性区域特征提取方法-----> AC/HC/LC/FT. 分类: 图像处理 2014-08-03 12:40 4088人阅读 评论(4) 收藏 举报 salient regio ...

  7. 【62】Spring总结之bean(3)

    Spring核心机制:依赖注入 Java应用(从applets的小范围到全套n层服务端企业应用)是一种典型的依赖型应用,它就是由一些互相适当地协作的对象构成的.因此,我们说这些对象间存在依赖关系.加入 ...

  8. Swift之GCD使用指南1

    Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到适当的Dispatch Que ...

  9. Mybatis #和$

    在mybatis的mapper文件中,对于传递的参数我们一般是使用#和$来获取参数值. 当使用#时变量是占位符,就是一般我们使用java jdbc的PrepareStatement时的占位符?,所有可 ...

  10. iPhone实现自定义多选列表

    好久没更新博客了,今天写了一个自定义的多选列表,可以跟爱学习的各位进行分享,首先我们先来看一下效果图: 一般大家都是用UITableView自己的编辑模式来实现CheckBox的,这里我们用自定义Ce ...