学会查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. Swing——鼠标(Action)

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41346969 看完这篇文章,你可能会学到到知识如下: (1 ...

  2. 多重DES

    背景:单重DES在穷举攻击下相对比较脆弱 理论依据:以双重DES为例 加密:C = E(K2,E(K1,P))     解密:P = D(K1,D(K2,C)) 要证明多重加密有效,就要证明不存在K3 ...

  3. TCP的定时器系列 — SYNACK定时器

    主要内容:SYNACK定时器的实现,TCP_DEFER_ACCPET选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 在上一篇博客中,已经连带 ...

  4. UNIX环境高级编程——进程基本概述

    一.什么是进程 从用户的角度来看进程是程序的一次执行过程.从操作系统的核心来看,进程是操作系统分配的内存.CPU时间片等资源的基本单位.进程是资源分配的最小单位.每一个进程都有自己独立的地址空间与执行 ...

  5. oracle的rownum与having用法 去除重复 在重复情况用rownum

    一般来说,大家会用rownum,也就是伪列来指定要显示多条数据, 比如 select linename from aced where rownum<3 但是,大家注意,如果取出来的数据有重复数 ...

  6. mongoDB介绍、安装、搭建简单的mongoDB服务器(一)

    相关网站 1. http://www.mongodb.org/ 官网,可以下载安装程序,和doc,和驱动等. 2. http://www.mongoing.com/ 国内官方网站,博客,问题谈论等  ...

  7. 9.5、Libgdx加速度计

    (官网:www.libgdx.cn) 加速度计可以让设备通过三个坐标轴检测加速度.通过加速度可以检测设备的方向. 加速度的单位是米每秒的平方.如果一个坐标轴指向地心,加速度大概是-10米每秒的平方.如 ...

  8. NDK开发环境安装,CDT安装,Cygwin安装

     1.为eclipse增加c和c++的开发插件 Help中的install new software 选择 Helios-http://download.eclipse.org/release/h ...

  9. UML之包图

    包图是UML中用类似于文件夹的符号表示的模型元素的组合,系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中,使用包图可将相关元素归入一个系统,一个包中包含附属包.图表或单个元素.简单的来说, ...

  10. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...