学会查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八-核心模块、包的更多相关文章

  1. Node.js核心模块_全局变量、util学习

    全局对象 javascript的全局对象是window,他及其所有属性都可以在程序的任何地方访问.即全局变量. 而在node中全局对象是global,所有全局变量都是global对象的属性,包括其本身 ...

  2. Node.js核心模块-fs文件系统

    fs是file-system的简写,文件系统的意思.在Node中如果想要进行文件操作,就必须引入fs这个核心模块. 引入 const fs = require('fs') fs.readFile(pa ...

  3. node.js核心模块

    全局对象 global 是全局变量的宿主 全局变量 在最外层定义的 全局对象的属性 隐士定义的变量(未定义直接赋值的变量) 当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然 注意: ...

  4. 【node】node的核心模块---http模块,http的服务器和客户端

    nodejs事件机制 ##### http服务器和客户端 node.js标准库提供了http模块,其中封装了一个高效的http服务器和一个简易的http客户端 HTTP服务器 1. http.crea ...

  5. node的核心模块path

    //导入模块path var path=require("path"); //path.basename :输出文件名+后缀 //console.log(path.basename ...

  6. Node.js核心模块-http

    通过node中的http模块可以创建编写服务器 引入 const http = require('http') http举例使用: const http = require('http') //引入 ...

  7. 10.Node.js核心模块

    1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...

  8. Node.js核心模块API之文件操作

    参考:https://www.runoob.com/nodejs/nodejs-fs.html 异步I/O 1,文件操作 2,网络操作 在浏览器中也存在异步操作 1,定时任务 2,事件处理 3,Aja ...

  9. Node.js核心模块-net

    net.Socket 类 socket.remotePort 访问服务器的远程端口 const http = require('http'); const server = http.createSe ...

随机推荐

  1. HTML5 Web Storage 特性

    原文地址: Using HTML5 Web Storage 原文日期: 2010年06月28日 翻译日期: 2013年08月12日 当下Web开发领域最火爆的词语当属 HTML5.HTML5标准的新特 ...

  2. mixer: sql词法分析器设计

    介绍 mixer希望在proxy这层就提供自定义路由,sql黑名单,防止sql注入攻击等功能,而这些的基石就在于将用户发上来的sql语句进行解析.也就是我最头大的词法分析和语法分析. 到现在为止,我只 ...

  3. GDAL中MEM格式的简单使用示例

    GDAL库中提供了一种内存文件格式--MEM.如何使用MEM文件格式,主要有两种,一种是通过别的文件使用CreateCopy方法来创建一个MEM:另外一种是图像数据都已经存储在内存中了,然后使用内存数 ...

  4. Android代码(Handler的运用),HttpURLConnection的应用,将url图片地址转换成图片。

     1 布局文件, <LinearLayout 秒, 抛异常 conn.connect();      // 开始链接 int responseCode = conn.getResponseC ...

  5. android View层的绘制流程

    还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得 ...

  6. MinerMonitorThread.java 监控线程

    MinerMonitorThread.java 监控线程 package com.iteye.injavawetrust.miner; import org.apache.commons.loggin ...

  7. python一行写不下,变多行

    python里一行写不下,拆成多行, \和() 两种方法 在一行末尾 加上" \",也就是空格加上\ a= 'sdfaf' \      'test' 注意两个对象都要独立,字符串 ...

  8. android 优化之布局优化

    布局优化的思路很简单,尽量减少布局文件的层级,看过系统源码的都知道,Android view绘制都是逐层绘制的,所以布局的层级少了,decodeview的时候绘制工作自然就少了. 那么如何进行布局的优 ...

  9. JVM 类的生命周期、类加载器

    类的加载.连接与初始化                  • 1. 加载:查找并加载类的二进制数据         • 2. 连接             – 2.1 验证:确保被加载的类的正确性   ...

  10. C语言函数strstr()分析及实现

    原型:char *strstr(const char *str1, const char *str2); #include<string.h> 找出str2字符串在str1字符串中第一次出 ...