zoukankan      html  css  js  c++  java
  • 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');

     

     

     

     

     

     

     

     

     

     

      

  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/nordon-wang/p/6050307.html
Copyright © 2011-2022 走看看