web学习笔记(四十五)Node.js

目录

1. Node.js

1.1 什么是Node.js

1.2 为什么要学node.js

1.3  node.js的使用场景

1.4 Node.js 环境的安装

1.5 如何查看自己安装的node.js的版本

1.6 常用终端命令

2. fs 文件系统模块

2.1引入fs核心模块

2.2 读取指定文件的内容

2.3  向文件写入指定内容

2.4 创建文件夹 

2.5 判断文件夹是否存在 access accessSync

2.6 删除文件夹 rmdir rmdirSync

2.7 拷贝文件 copyFile copyFileSync

2.8 修改文件名称rename  renameSync

2.9 向文件中追加内容appendFlie appendFlieSync

2.10  删除文件 unlink  unlinkSync


1. Node.js

1.1 什么是Node.js

Node.js是一个开源、跨平台的JavaScript运行时环境。  Node.js内置v8引擎(谷歌研发的引擎)。需要注意的是:浏览器是JavaScript的前端运行环境,node.js是JavaScript的后端运行环境,因此node.js中无法调用dom和bom等浏览器内置的api。

Node.js 的官网地址: https://nodejs.org/zh-cn/icon-default.png?t=N7T8https://nodejs.org/zh-cn/

 

1.2 为什么要学node.js

  1.  node.js目前是很多前端技术的底层语言,基于这些功能,很多工具和框架层出不穷(vue  react-cli)。
  2.  nopde.js是一种可以使用js编写的后端语言。
  3.  node.js是前端工程师的一个加分项。

1.3  node.js的使用场景

1.4 Node.js 环境的安装

       如果希望通过 Node.js 来运行 Javascript 代码,则必须在计算机上安装 Node.js 环境才行。安装包可以从 Node.js 的官网首页直接下载,进入到 Node.js 的官网首页(Node.js — Run JavaScript Everywhere),点击绿色的按钮,下载所需的版本后,双击直接安装即可。推荐使用LTS 为长期稳定版,Current 为新特性尝鲜版,可能会比稳定版多一些功能,但是也会存在隐藏的bug。

  1. 搭建web服务器:Node.js 可以用于构建高性能的 Web 服务器。由于其非阻塞I/O和事件驱动的特性,使得它很适合处理大量并发请求。
  2.  作为中间件服务:API 网关、身份验证和授权中间件、缓存中间件
  3. 后端开发:Node.js 可以作为后端技术栈的一部分,用于构建 RESTful API、处理数据库操作、进行身份验证等任务。

  4. 实时应用程序:Node.js 对于需要实时数据交换的应用程序非常有用,比如在线聊天应用、多人协作工具等。

  5. 微服务架构:Node.js 可以作为微服务架构中的一个组件,每个微服务都可以使用 Node.js 来构建。

  6. 工具开发:Node.js 可以用于开发各种工具和脚本,比如构建工具、自动化测试工具、命令行工具等。

  7. 数据流处理:Node.js 在处理大量数据流时表现出色,比如日志处理、文件上传等场景。

1.5 如何查看自己安装的node.js的版本

  1.  window+R --- 运行cmd---  打开终端---输入node -v,然后按下回车。
  2.  在文件上右击---在文件资源管理器中显示---在地址栏中输入cmd,回车---输入node -v,然后按下回车。
  3.  在文件上右击--在集成终端打开---输入node -v,然后按下回车。

1.6 常用终端命令

  • 使用 ↑ 键,可以快速定位到上一次执行的命令
  • 使用 tab 键,能够快速补全路径
  • 使用 esc 键,能够快速清空当前已输入的命令
  • 输入 cls 命令,可以清空终端

2. fs 文件系统模块

fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。

2.1引入fs核心模块

let fs = require('fs');
console.log(fs);

在 fs 文件系统模块每个操作都是分为异步和同步两种方式,在异步单词的后面加上Sync就是同步操作,在进行同步操作时推荐将代码写入try{}catch{}中,这样即使代码出错也不会影响下面代码的执行。

2.2 读取指定文件的内容

(1) fs.readFile异步读取  (有回调函数的都是异步操作),里面包含三个参数:

 url地址  必选
编码格式utf-8   可选
回调函数错误优先判断(优先判断是否错误)
fs.readFile('./flie/1.txt', (err, data)=>{
    if (err) return console.log('读取失败' + err.message);
    console.log(data.toString());
})


//或者下面的这种格式,二选一

fs.readFile('./flie/1.txt', 'utf-8', (err, data) => {
    if (err) return console.log('读取失败' + err.message);
    console.log(data);
})

(2) 同步读取操作   fs.readFileSync()    

let data = fs.readFileSync('./flie/1.txt', 'utf-8');
console.log(data);

2.3  向文件写入指定内容

(1)异步写入  fs.writeFile(),有四个参数:

文件路径 必选
要写入的内容必选  必须是字符串
表示以书名格式写入文件内容默认值是utf-8  可选
回调函数有一个参数  err(错误参数)
fs.writeFile('./flie/1.txt', '啊啊啊', (err) => {
    // 错误优先
    if (err) {
        return console.log('写入失败'+err.message);
    }
    console.log('写入成功');
})

(2)同步写入  fs.writeFileSync

 fs.writeFileSync('./flie/1.txt', '下午好');

2.4 创建文件夹 

(1)异步:mkdir

fs.mkdir('yi', (err) => {
    if (err) return console.log('创建文件夹失败' + err.message);
    console.log('创建文件夹成功');
});

(2)同步: mkdirSync

try {
    fs.mkdirSync('er')
} catch (err) {
    console.log('创建文件夹失败' + err.message);
}

2.5 判断文件夹是否存在 access accessSync

fs.access('er', err => {
    if (err) return console.log('这个文件夹不存在');
    console.log('文件夹存在');
})

2.6 删除文件夹 rmdir rmdirSync

fs.rmdir('er', err => {
    if (err) return console.log('删除失败' + err.message);
    console.log('删除成功');
})

2.7 拷贝文件 copyFile copyFileSync

fs.copyFile('./flie/1.txt', './yi/2.txt', (err) => {
    if (err) return console.log('拷贝失败');
    console.log('拷贝成功');
})

2.8 修改文件名称rename  renameSync

try {
    fs.renameSync('./yi/2.txt', './yi/1.txt');
} catch {
    console.log('重命名失败');
}

2.9 向文件中追加内容appendFlie appendFlieSync

try {
    fs.appendFileSync('./yi/1.txt','\n晚上好')
} catch {
    console.log('追加失败');
}

2.10  删除文件 unlink  unlinkSync

try {
    fs.unlinkSync('./er/1.txt')
} catch {
    console.log('删除失败');
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

app自动化-Appium学习笔记

使用Appium,优点: 1、支持语言比较多,例如:Java、Python、Javascript、PHP、C#等语言 2、支持跨应用(windows、mac、linux) 3、适用平台Android、iOS 4、支持Native App(原生app)、Web App、Hybird App…

canvas画图写文字,有0.5像素左右的位置偏差,无解决办法,希望有知道问题的大神告知一下

提示&#xff1a;canvas画图写文字 文章目录 前言一、写文字总结 前言 一、写文字 test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

Fragment 与 ViewPager的联合应用(2)

5.创建底部布局bottom_layout <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"horizontal"android:layout_width"match_parent"android:layout_height"55dp"android:background&qu…

【算法】求最大公约数和最小公倍数

题目 输入两个数&#xff08;空格隔开&#xff09;分2行输出他们的最大公因数和最小公倍数 原理 辗转相除法计算最大公约数 将两个数中较大的数除以较小的数&#xff0c;并将较小的数作为除数&#xff0c;较大的数作为被除数。计算余数。若余数为零&#xff0c;则较小的数即…

深入探索MySQL高阶查询语句的艺术与实践

目录 引言 一、条件查询 &#xff08;一&#xff09;比较运算符查询 1.使用匹配符号查询 2.范围查找 &#xff08;二&#xff09;逻辑运算符 二、关键字排序 三、分组与聚合函数 四、限制查询 五、别名 &#xff08;一&#xff09;设置列别名 &#xff08;二&#x…

Dockerfile和Docker-compose

一、概述 Dockerfile和Docker Compose是用于构建和管理 Docker 容器的两个工具&#xff0c;但它们的作用和使用方式不同。 Dockerfile Dockerfile 是一个文本文件&#xff0c;用于定义 Docker 镜像的构建规则。它包含一系列指令&#xff0c;如 FROM&#xff08;指定基础镜像…

python(django)之单一接口管理功能后台开发

1、创建数据模型 在apitest/models.py下加入以下代码 class Apis(models.Model):Product models.ForeignKey(product.Product, on_deletemodels.CASCADE, nullTrue)# 关联产品IDapiname models.CharField(接口名称, max_length100)apiurl models.CharField(接口地址, max_…

uniapp微信小程序_computed_计算BMI

一、computed的用法还有它是什么&#xff1f; 首先它叫计算属性&#xff0c;顾名思义他是用来计算属性&#xff0c;计算你在data模板上定义的属性&#xff08;其实在插值表达式也能直接计算但是首先太长了在{{}}里面写那么多不好看&#xff0c;还有其他特点我在下面一起说&…

jupyter notebook导出含中文的pdf(LaTex安装和Pandoc、MiKTex安装)

用jupyter notebook导出pdf时&#xff0c;因为报错信息&#xff0c;需要用到Tex nbconvert failed: xelatex not found on PATH, if you have not installed xelatex you may need to do so. Find further instructions at https://nbconvert.readthedocs.io/en/latest/install…

nacos集群搭建实战

集群结构图 初始化数据库 Nacos默认数据存储在内嵌数据库Derby中&#xff0c;不属于生产可用的数据库。官方推荐的使用mysql数据库&#xff0c;推荐使用数据库集群或者高可用数据库。 首先新建一个数据库&#xff0c;命名为nacos&#xff0c;而后导入下面的SQL&#xff08;直…

苹果Find My产品需求增长迅速,伦茨科技ST17H6x芯片供货充足

苹果的Find My功能使得用户可以轻松查找iPhone、Mac、AirPods以及Apple Watch等设备。如今Find My还进入了耳机、充电宝、箱包、电动车、保温杯等多个行业。苹果发布AirTag发布以来&#xff0c;大家都更加注重物品的防丢&#xff0c;苹果的 Find My 就可以查找 iPhone、Mac、Ai…

Qt 图形视图 /图形视图框架坐标系统的设计理念和使用方法

文章目录 概述Qt 坐标系统图形视图的渲染过程Item图形项坐标系Scene场景坐标系View视图坐标系map坐标映射场景坐标转项坐标视图坐标转图形项坐标图形项之间的坐标转换 其他 概述 The Graphics View Coordinate System 图形视图坐标系统是Qt图形视图框架的重要组成部分&#xf…

vue指令相关

vue中有很多的指令像v-on、v-model、v-bind等是我们开发中常用的 常用指令 v-bind 单向绑定解析表达式 v-model 双向数据绑定 v-for 遍历数组/对象/字符串 v-on 绑定事件监听,可简写为@ v-show 条件渲染(动态控制节点是否存展示) v-if 条件渲染(动态控制节点是否存存在) v…

R 生存分析3:Cox等比例风险回归及等比例风险检验

虽然Kaplan-Meier分析方法目前应用很广&#xff0c;但是该方法存在一下局限: 对于一些连续型变量&#xff0c;必须分类下可以进行生存率对比 是一种单变量分析&#xff0c;无法同时对多组变量进行分析 是一种非参数分析方法&#xff0c;必须有患者个体数据才能进行分析 英国…

鸿蒙开发-UI-交互事件-焦点事件

鸿蒙开发-UI-图形-绘制几何图形 鸿蒙开发-UI-图形-绘制自定义图形 鸿蒙开发-UI-图形-页面内动画 鸿蒙开发-UI-图形-组件内转场动画 鸿蒙开发-UI-图形-弹簧曲线动画 鸿蒙开发-UI-交互事件-通用事件 鸿蒙开发-UI-交互事件-键鼠事件 文章目录 前言 一、基本概念 二、走焦规则 三、…

android_uiautomator元素定位

通过UIAUTOMATOR的text属性定位到元素&#xff0c;并打印文本from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy import time # For W3C actions from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriv…

小程序富文本图片宽度自适应

解决这个问题 创建一个util.js文件,图片的最大宽度设置为100%就行了 function formatRichText(html) {let newContent html.replace(/\<img/gi, <img style"max-width:100%;height:auto;display:block;");return newContent; }module.exports {formatRichT…

2024.3.26

头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QTimerEvent> #include <QTimer> #include <QtTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : p…

centos创建svn库步骤

1.切换root用户 1、设置root用户的密码&#xff1a; sudo passwd root 2、切换到root用户权限 su 3、切换回个人用户权限 exit 2.用root用户执行yum install -y subversion 3.创建文件夹mkdir -p /data/svn/repository 4.创建SVN 版本库 5.输入命令&#xff1a; svnadmin creat…

第 1 章.提示词:开启AI智慧之门的钥匙

什么是提示词&#xff1f; 提示词&#xff0c;是引导语言模型的指令&#xff0c;让用户能够驾驭模型的输出&#xff0c;确保生成的文本符合需求。 ChatGPT&#xff0c;这位文字界的艺术大师&#xff0c;以transformer架构为基石&#xff0c;能轻松驾驭海量数据&#xff0c;编织…
最新文章