Node.js——初识Node.js与内置模块(一)

news2025/1/20 13:31:04

1.初识 Node.js

1.1 浏览器中的 JavaScript运行环境

1.浏览器中的 JavaScript 的组成部分

2.为什么 JavaScript 可以在浏览器中被执行

3.为什么 JavaScript 可以操作 DOM 和 BOM

4.浏览器中的 JavaScript 运行环境

 Javascript可以借助node,js进行后端开发

1.2 Node.js 简介

1.2.1 什么是 Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境

     (js代码放到node.js里面执行可以进行后端开发,js代码放浏览器执行就是前端开发)

Node.js 的官网地址: https://nodejs.org/zh-cn/

1.2.2 Node.js 中的 JavaScript 运行环境 

1.2.3 Node.js 可以做什么 

 1.2.4 Node.js 怎么学

1.3 Node.js 环境的安装

1.3.1 区分 LTS 版本和 Current 版本的不同

1.3.2  查看已安装的 Node.js 的版本号

1.3.3  什么是终端

1.4 在 Node.js 环境中执行 JavaScript 代码

 cd改变路径;要切换到js所在目录下才能执行

另一种方式:在js文件空白处按住shift键鼠标右键

点击打开另一个终端,这个里面js的文件路径已经写好了,直接node js文件名即可运行

2.fs 文件系统模块

2.1 什么是 fs 文件系统模块

只要安装了node.js,就会自动将fs这些模块安装到电脑本地,node会自动帮我们查找fs

 

2.2 读取指定文件中的内容

1. fs.readFile() 的语法格式

被中括号包起来的参数都是可选参数项

2. fs.readFile() 的示例代码

// 1. 使用require导入 fs 模块,来操作文件
const fs = require('fs')

// 2. 调用 fs.readFile() 方法读取文件
//    参数1:读取文件的存放路径
//    参数2:读取文件时候采用的编码格式,一般默认指定 utf8
//    参数3:回调函数,拿到读取失败和成功的结果  err  dataStr
fs.readFile('./files/11.js', 'utf8', function(err, dataStr) {
  // 2.1 打印失败的结果
  // 如果读取成功,则 err 的值默认为 null
  // 如果读取失败,则 err 的值为 错误对象,dataStr 的值为 undefined
  console.log(err)
  console.log('-------')
  // 2.2 打印成功的结果
  console.log(dataStr)
})

3.判断文件是否读取成功 

const fs = require('fs')

fs.readFile('./files/11.txt', 'utf8', function(err, dataStr) {
  if (err) {
    //不等于null变成true读取文件失败
    return console.log('读取文件失败!' + err.message)
  }
  console.log('读取文件成功!' + dataStr)
})

2.3 向指定的文件中写入内容

1. fs.writeFile() 的语法格式

2. fs.writeFile() 的示例代码

3. 判断文件是否写入成功

// 1. 导入 fs 文件系统模块
const fs = require('fs')

// 2. 调用 fs.writeFile() 方法,写入文件的内容
//    参数1:表示文件的存放路径
//    参数2:表示要写入的内容
//    参数3:回调函数
fs.writeFile('./files/3.txt', 'ok123', function(err) {
  // 2.1 如果文件写入成功,则 err 的值等于 null
  // 2.2 如果文件写入失败,则 err 的值等于一个 错误对象
  // console.log(err)

  if (err) {
    return console.log('文件写入失败!' + err.message)
  }
  console.log('文件写入成功!')
})

2.4 练习 - 考试成绩整理

// 1. 导入 fs 模块
const fs = require('fs')

// 2. 调用 fs.readFile() 读取文件的内容
fs.readFile('../素材/成绩.txt', 'utf8', function(err, dataStr) {
  // 3. 判断是否读取成功
  if (err) {
    return console.log('读取文件失败!' + err.message)
  }
  // console.log('读取文件成功!' + dataStr)

  // 4.1 先把成绩的数据,按照空格进行分割
  const arrOld = dataStr.split(' ')
  // 4.2 循环分割后的数组,对每一项数据,进行字符串的替换操作
  const arrNew = []
  arrOld.forEach(item => {
    arrNew.push(item.replace('=', ':'))
  })
  // 4.3 把新数组中的每一项,进行合并,得到一个新的字符串
  const newStr = arrNew.join('\r\n')//回车换行

  // 5. 调用 fs.writeFile() 方法,把处理完毕的成绩,写入到新文件中
  fs.writeFile('./files/成绩-ok.txt', newStr, function(err) {
    if (err) {
      return console.log('写入文件失败!' + err.message)
    }
    console.log('成绩写入成功!')
  })
})

2.5 fs模块 - 路径动态拼接的问题

动态拼接的文件路径:eg读取files/1.txt,在终端里node在哪就会把files/1.txt直接动态拼接在node前面的目录下面,造成路径错误

 解决:提供绝对路径

const fs = require('fs')

// 出现路径拼接错误的问题,是因为提供了 ./ 或 ../ 开头的相对路径
// 如果要解决这个问题,可以直接提供一个完整的文件存放路径就行
/* fs.readFile('./files/1.txt', 'utf8', function(err, dataStr) {
  if (err) {
    return console.log('读取文件失败!' + err.message)
  }
  console.log('读取文件成功!' + dataStr)
}) */

// 移植性非常差、不利于维护
//在js里面\代表转义,所以补成两个斜线
/* fs.readFile('C:\\Users\\escook\\Desktop\\Node.js基础\\day1\\code\\files\\1.txt', 'utf8', function(err, dataStr) {
  if (err) {
    return console.log('读取文件失败!' + err.message)
  }
  console.log('读取文件成功!' + dataStr)
}) */

// __dirname 表示当前文件所处的目录,恒定
// console.log(__dirname)
//把这俩的放一个目录里面05和files
fs.readFile(__dirname + '/files/1.txt', 'utf8', function(err, dataStr) {
  if (err) {
    return console.log('读取文件失败!' + err.message)
  }
  console.log('读取文件成功!' + dataStr)
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

virtio前端驱动通知机制分析

virtio前端驱动通知机制分析 virtio 前后端主要通过PCI配置空间的寄存器来完成通信,I/O 请求的数据地址存放于 vring 中,并通过共享vring这个区域来实现 I/O 请求数据的共享。 由上图可知,虚拟机与主机之间交互用到了两个结构体:p…

智能网联汽车行业发展

智能网 联汽车信息安全发展趋势 智能网联汽车行业发展 根据工信部发布的《国家车联网产业标准体系建设 指南(智能网联汽车)》的定义,智能网联汽车是指搭载先进的车载传感器 、控制器、执行器等装置,并融合现代通信与网络技术&a…

明道云联合思迈特打造会员管理应用可视化联合解决方案

背景介绍 明道云在协助企业数字化转型过程中,发现客户对利用业务数据形成企业级报表和数据可视化大屏的需求十分强烈。为了满足这种需求,企业通常需要成立专门的数据分析团队,但这需要巨大的人力和财力投入,时间周期也较长。为了…

信息数智化招采系统源码——信息数智化招采系统

信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stre…

React 学习笔记总结(五)

文章目录1. React 嵌套路由(多级路由)2. params参数 与 query参数3. React路由组件 传递params参数数据4. React路由组件 传递search参数5. React路由组件 传递search参数6. React路由组件 特殊情况: 刷新页面7. React路由 的 push 和 replace8. React的 编程式路由9. React路由…

Transformer架构:位置编码

2017年,Google等人提出了Vaswani提出了一种新颖的纯注意力序列到序列架构,闻名学术界与工业界的Transformer架构横空出世,它的可并行化训练能力和优越的性能称为自然语言处理领域和计算机视觉领域研究人员的热门选择,本文将重点讨…

elasticsearch--Master选举

最近一直在学习elasticsear相关的东西,在这学习的过程中记录一下比较重要的学习内容。方便以后看的时候加深印象。 假如宕机的节点是Master节点 下面是Maste节点选举 的流程图 在findMaster的方法中每隔一段时间就会ping所有的节点,看看有没有哪个节…

java设计模式三

文章目录4) 创建IOC容器相关的类5) 自定义IOC容器测试6) 案例中使用到的设计模式7.2 剖析MyBatis框架中用到的经典设计模式7.2.1 MyBatis回顾7.2.1.1 MyBatis与ORM框架7.2.1.1 MyBatis的基础使用7.2.2 MyBatis中使用到的设计模式7.2.2.1 Builder模式7.2.2.2 工厂模式7.2.2.3 单…

基于Java开发(PC)小说自检测系统【100010061】

Java 语言与系统设计课程(小说自检测系统) 一、目的与要求 ​ 自行下载最喜爱的小说 1 部。存到服务器中,格式自定。一般存储为文本文档。要求长篇小说,20 万字以上。举例说明:下载《三国演义》保存在服务器端。 ​…

Secure Boot功能简析

在数据中心中,云服务器由各种处理设备和外围组件(如加速器和存储设备)组成,这些设备通常都运行着固件。对云平台服务商来说,为保证这些设备的安全可靠,需要一种或多种机制,来保证这些设备在测试…

XYplorer使用教程

XYplorer使用教程 XYplorer是Windows的文件管理器。它具有标签式浏览,强大的文件搜索功能,多功能预览,高度可定制的界面,可选的双窗格以及一系列独特的方法,可以有效地自动执行频繁重复的任务。它快速,轻便…

【DCDC转换器】BUCK电路的演进

本文将是对BUCK型DCDC转换器的起步介绍,从BUCK电路模型的建立出发,可以对转换器原理有更清晰的认识。其次对三种不同类型开关电源转换器的原理进行计算,转换器的原理基本是类似的,相同的分析方法可以套用在其他模型上。最后引入了…

PHP基本语法(1)

前言:PHP是什么呢?PHP是一种后端开发用的语言,简单点说制作的网页分为静态和动态,静态网页用户体验性差,动态网页用户可以进行交互,而这种交互就需要PHP了。所以PHP他就是一门用于后端开发的语言。 注意&a…

操作系统实验1:操作系统的引导

操作系统实验1:操作系统的引导 现在是2022年12月22日,本人一如既往又是ddl战神😅 (虽然一周前刚立过flag) 两个月前就布置了的内容硬是拖到现在,这波实在是看不下去自己了😅😅😅 拖到了ddl的最后一天&…

String、StringBuffer、StringBuilder的区别

文章目录一、StringBuffer1、介绍2、StringBuffer中方法二、StringBuilder1.介绍2.常用方法总结一、StringBuffer 1、介绍 是可以存储和操作字符串,即包含多个字符的字符串数据。对于StringBuffer而言,本身是一个具体的操作类,所以不能像St…

推送MOBPUSH-API说明

消息监听接口 MobPushReceiver: 消息监听接口(包含接收自定义消息、通知消息、通知栏点击事件、别名和标签变更操作等) MobPush.addPushReceiver(MobPushReceiver receiver): 设置消息监听 MobPush.removePushReceiver(MobPushReceiver receiver): 移除…

2022年全国最新消防设施操作员模拟试题题库及答案

百分百题库提供消防设施操作员考试试题、消防设施操作员考试预测题、消防设施操作员考试真题、消防设施操作员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 38.下列说法正确的是()。 A.低压供配电系统中&…

vue的基本概念与vue2的指令

目录 一、 Vue的基本概念 1、前端技术的发展(html、CSS、JavaScript) ​ 2、MVVM架构: 数据的双向绑定: 二、Vue开发的方式 1、基本方式:在页面中引入vue.js文件。(vscode) 2、组件…

智能网 联汽车信息安全发展趋势

智能网 联汽车信息安全发展趋势 智能网联汽车行业发展 根据工信部发布的《国家车联网产业标准体系建设 指南(智能网联汽车)》的定义,智能网联汽车是指搭载先进的车载传感器 、控制器、执行器等装置,并融合现代通信与网络技术&a…

Android设计模式详解之备忘录模式

前言 备忘录模式是一种行为模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态; 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样&#xf…