Node学习之内置对象篇

分类
一个文件一个模块;一个模块一个对象
  • 全局对象: 何时何处都能访问 。 全局对象就是在系统中
  • 核心对象: 放在node.exe中向系统索要,引入即可使用
  • 自定义对象: 按路径引入即可 自己创建的模块;导出、导入
process(全局对象)
  • 每个系统的环境变量几乎都不一样,可以利用环境变量中的具体某个特定的值来区分不同的机器
  • process.env是一个对象,我们可以通过其.属性名来获取具体的环境变量值
    • 设置一个特定的环境变量,以达到简单区分不同的机器,从而针对生产/开发环境运行不同的效果
  • process.argv 获取命令行参数
filename/dirname(全局对象)
  • __filename 获取当前运行文件的目录,绝对路径 (带文件名字)
  • __dirname 当前运行文件的绝对路径(不带文件名字,到当前目录为止)
nodejs实现规范
  • CommonJS : 规范JavaScript语言作为后端语言运行的标准
    • 具备什么能力,该怎么做 ,比如: 具备服务器的功能/ 可以操作文件 …
    • 模块应该怎么写Module :
      • 依赖一个模块 require(‘模块名(id)’)
      • 需要被模块依赖 module.exports = 给外部的数据
      • 一个文件是一个模块
核心对象path
  • 引用:const path = require(‘path’)
  • path在处理路径的时候很擅长,但是其不负责判断路径是否存在文件
  • 以当前目录/a/b为例,拼接并修正路径: path.join(__dirname,‘a’,‘b’);
  • 相对路径转绝对路径:path.resovle(’./xxx’)
  • path.parse方法接收一个合法的路径字符串,转换成一个对象:
    • let pathObj = path.parse(mypath)
  • path.format方法接收一个路径对象,转换成一个字符串路径:
    • let str = path.format(pathObj)
    • pathObj属性举例如下:
      { 
        root: 'C:\\',
        dir: 'C:\\Users\\孙悟空',
        base: '金箍棒.txt',   // 该属性可以用于修改文件名和后缀
        ext: '.txt',
        name: '金箍棒' 
      }
      
      • 注意:对于修改路径对象来讲可以用base属性更改不能用name,ext更改
模块
  • 弊端
    • 在js中要涉及到逻辑,还要在html中,为逻辑对象考虑引用顺序
    • 所有对象默认都是全局对象,命名冲突
    • commonjs规范
    • 一个文件就是一个模块
      • 导入用require(’./xxx.js’)
      • 导出用module.exports = xxx
      • 在每一个模块内声明的变量属于模块内的作用域
fs文件模块
  • 文件读写
  • 其他功能
  • 扩展介绍
操作文件对象
  • IO流
    • input输入
    • output 输出
  • 复制文件的过程input: 通过计算机,存储文件到剪切板
    • 粘贴到指定目录output: 通过计算机,将剪切板上的数据,写出到指定目录
  • node中有两种IO的操作
    • 同步IO
    • 一行代码(读文件)不执行完毕…后续代码不能执行
    • 异步IO (建议)
      • 一行代码(读写文件) 不执行完毕(正在读写中) … 后续代码也可以执行
    • 代码体验
      • 读写文件:
        const fs = require('fs'); //必须这个名称
        //同步读操作 fs.readFile(路径,回调函数);
        //同步写操作 fs.writeFile(路径,数据,回调函数);
        //异步读操作 fs.readFileSync(路径,回调函数);
        //异步写操作 fs.writeFileSync(路径,数据,回调函数);
        
        • 总结: 异步的读/写文件 参数1:都是路径,可以相对可以绝对,最后一个参数都是回调函数,回调函数的参数中错误对象优先
  • 同步和异步IO的区别: 同步IO会阻塞后续代码执行,异步IO不会阻塞后续代码执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值