node和npm yarn包管理工具

node和包管理工具

今日目标:

1.dos常用指令

2.node的模块化

3.npm包管理工具

4.yarn的常用指令

5.node的内置模块

00-回顾

# Promose:`作用`:解决ajax请求响应顺序不可控的问题`特性`1. Promise是一个构造函数,需要通过new关键字来实例化,实例化的过程中需要接收一个函数参数,该函数又要接收两个函数参数,分别是resolve和reject2. Promise具有3种状态,分别是`默认的pennding进行中``fulfilled已完成``rejected已失败`3. 当调用了resolve方法之后,可以将进行中的状态修改为已完成的状态,同时可以触发实例对象的then方法,顺带可以将参数带过去4. 当调用reject方法之后,可以将进行中的状态修改为已失败的状态,同时可以触发实例对象的catch方法,顺带将参数带过去5. 无论是已成功还是已失败,只要Promise的状态发生了改变,就会触发实例对象的finally方法`Promise为什么支持链式调用?` 原型对象上的then,catch和finally都会返回一个新的Promise的实例对象`原型对象上的3个方法`then: Promise执行成功,触发的实例对象的方法,可以接收resolve传过来的参数catch: Promise执行失败,触发的实例对象的方法,可以接收reject传过来的参数finally: 只要Promise的状态发生了改变,就会触发该实例对象的方法,不能接收参数`Promise的6个静态方法`all: 同时触发多个Promise,当最后一个Pomise执行成功后,就结束。如果其中有一个失败了,也结束了any: 同时触发多个Promise,只有有一个成功,就结束,如果全都失败,就直接报错race: 同时触发多个Promise, 无论成功或失败,只要有一个Promise的状态发生了改变,就结束allSettled(es2020): 同时触发多个Promise, 无论成功或失败,会等待每一个Promise执行完毕,并返回每一个Promise的状态,以数组接收resolve: 强制将Promise的状态修改为已完成reject: 强制将Promise的状态修改为已失败`Promise解决ajax响应顺序不可控的问题`=> 原理:Promise实例对象上的then方法必须等到resolve之后才可以触发。=> 步骤:1. 在前一个Promise里面发起第一个请求;2. 在请求完成后,将请求的结果resolve出去;3. 在实例对象的then方法中接收参数,并发起新的请求# asyncawait=> es7的语法。 可以将异步任务同步执行'语法'async 函数名() {await 一个完成的Promise}'示例'async fn() {let 结果 = await new Promise((resolve, reject) => {resolve('await等待的结果')})}=> 注意:1. async要写函数前面,表明该函数内部有异步任务2. await要写在Promise的前面,用来等待Promise的resolve的结果,等到结果之前,是无法执行后面代码的'完美的解决ajax响应顺序不可以控的问题'async fun() {// r1就是axios响应回来的数据let r1 = await axios({method: '请求方式', url: '请求地址', params|data: {提交的参数}})// r2就是axios响应回来的数据let r2 = await axios({method: '请求方式', url: '请求地址', params|data: {提交的参数}})		`注意`:r1没有得到结果前,是不会执行r2的axios请求的}# 事件轮询
`单线程`JS是一门单线程的语言,在同一时间内,只能执行一个任务,可能会造成代码阻塞
`调用栈`: 存储代码的执行环境的。 执行环境就是代码运行的环境. '先入后出'
`任务队列`: 异步任务存放的位置。宏任务队列和微任务队列
`宏任务`: 整个JS代码, 延时定时器,周期定时器
`微任务`: Promise的then方法
`Web API`: 接收所有的异步任务,消耗定时器的时间,分配给任务队列`事件轮询`:探究同步和异步的执行机制=> '工作原理': 当打开浏览器的时候,事件轮询就开始启动了。每执行一个宏任务,就会清空所有的微任务,再执行一个宏任务,循环往复。直到所有的任务都执行完成

01-dos的常用指令

  1. 通过win + r, 输入cmd,打开命令提示符工具 — ‘小黑窗’

  2. Win系统:打开资源管理器,进入对应的目录下面,在地址栏输入’cmd’即可

  3. MAC系统:找到对应的目录,拖到小黑窗里面去

`快速切换盘符`: 盘符名:`查看当前目录下的所有的子目录和子文件`: dir`切换下一级目录`: cd 目录名`切换上一级目录`: cd ../`清屏`: cls|clear`终止程序运行`: Ctrl C'小技巧'1. 可以通过`tab`键快速切换当前目录下的子目录和子文件;2. 可以通过上下箭头快速切换之前使用过的指令

02-node的概述

`概念`:独立于浏览器的另一个执行js代码的平台`特性`1. ECMAScript: js的核心代码; 2. '让js具有了后端编程语言的能力', 比如操作文件,操作数据库等`安装`1. 打开官网,下载稳定版;2. 双击安装,无脑猛点下一步即可,3. 打开小黑窗输入'node -v'查看版本号。 注意不要安装到中文路径下`node执行js文件`: 鼠标在要执行的js文件上右键,'在终端中打开',通过指令'node js文件'

03-node模块的分类

`可以分为三大类`1. 内置模块(nodejs原生提供的)可以直接使用2. 自定义模块(需要手动的导出)3. 第三方模块(需要下载安装然后才可以使用)`四大内置模块`1. fs 操作文件或文件夹
2. path 处理路径的模块
3. url 操作网址
4. http 创建本地服务器

03-node的模块化

`模块化`: 每一个js文件都是一个模块,模块和模块之间可以相互导入导出`使用`=> 导出:module.exports = {}=> 导入:let 变量 = require('路径|模块名')=> 注意: 1. 导出的可以是任意内容,但是一般都是对象; 2. 导出的是什么,导入的就是3. 如果是自己写的js文件,导入的就是'路径名', 如果导入的是node的内置模块或者第三方模块,导入的就是'模块名'	

04-npm的常用指令【重点】

npm: 包管理工具
管理: 安装,删除,替换
包:各种第三方的库: swiper axios qs lodash

npm: 只有安装了node,系统自带了npm

# 1. npm init -y: 初始化包管理工具, 自动创建一个package.json文件# 2. 安装第三方的库
// 当使用了指令后,默认会生成一个node_modules目录,所有的模块都会放在里面
// 运行环境:线上环境,真实的网络环境。项目上线后依然要使用的库
// 开发环境:开发阶段。只在开发阶段才使用的库。
// 全局环境:某些库或者资源安装之后,可以生成一个系统的指令。所有的项目都可以使用全局环境的指令=> 默认安装到运行环境: # npm i 模块名=> 安装到开发环境:# npm i 模块名 -D=> 安装到全局环境: # npm i 模块名 -g// 注意:npm的全局安装的路径: 'C:\Users\电脑名字\AppData\Roaming\npm'# 3. 查看库的所有版本
npm view 模块 versions# 4. 安装指定的版本号
npm i 模块@版本号 # 5. 删除指定的模块
npm remove 模块
// npm remove 模块: 删除运行环境和开发环境的模块
// npm remove 模块 -g: 删除全局安装的模块# 6. npm i: 根据package.json和package-lock.json包管理文档将记录下来的模块全部装回来# 7. nvm:控制node版本的工具包:有兴趣需要可以学习!!!

05-package.json文档说明

项目的包管理文档

package-lock.json: 版本锁文件。记录了所有第三方模块的版本号和下载地址。当后面通过npm i指令(或者 yarn 一下)找回所有第三方模块时,安装的也是当前的版本号。

{"name": "03-npm-demo", // 项目的根目录"version": "1.0.0", // 版本号"description": "", // 项目的描述"main": "index.js", // 入口文件"scripts": { # 可执行脚本"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [], // 关键词"author": "", // 作者"license": "ISC", // 开源协议"dependencies": { // 运行环境安装的模块"axios": "^1.2.2"},"devDependencies": { // 开发环境安装的模块"swiper": "^8.4.5"}
}

06-yarn的常用指令【重点】

# 1. 全局安装yarn 
npm i yarn -g# 2. yarn init -y: 初始化包管理工具, 自动创建一个package.json文件# 3. 安装第三方的库
// 当使用了指令后,默认会生成一个node_modules目录,所有的模块都会放在里面
// 运行环境:线上环境,真实的网络环境。项目上线后依然要使用的库
// 开发环境:开发阶段。只在开发阶段才使用的库。
// 全局环境:某些库或者资源安装之后,可以生成一个系统的指令。所有的项目都可以使用全局环境的指令=> 默认安装到运行环境: # yarn add 模块名=> 安装到开发环境:# yarn add 模块名 -D=> 安装到全局环境: # yarn global add 模块名: eg: yarn global add rimraf// 注意:yarn的全局安装的路径: 'C:\Users\电脑名字\AppData\Local\Yarn\bin'// rimraf: 能快速删除node_modules# 4. 安装指定的版本号
yarn add 模块@版本号 # 5. 删除指定的模块
yarn remove 模块
// yarn remove 模块: 删除运行环境和开发环境的模块
// yarn remove 模块 -g: 删除全局安装的模块# 6. yarn: 根据package.json和package-lock.json包管理文档将记录下来的模块全部装回来# 注意:用yarn安装了全局模块后,需要配置环境变量: 系统中搜索'查看高级系统设置' => 点击'环境变量'=>双击'path'=>新建=>将yarn的全局安装路径粘贴过来=>点击三个确定

07-node的内置模块–fs

# fs(fileSystem): 操作文件或者文件夹
// fs: 操作文件|文件夹的内置模块let fs = require('fs')// console.log(fs);// 1. 异步读取index.txt这个文件中的内容
// fs.readFile('文件名', 编码格式, 回调函数)
// 文件名: 必填,需要读取的文件
// 编码格式:选填, 读取的文件的内容格式. 默认值是Buffer. 建议使用'utf-8'
// 回调函数: 必填:两个参数
//          =》 err: 读取失败的错误信息
//          =》 res:  读取成功的返回内容// console.log(111);// fs.readFile('index.txt', 'utf-8', (err, res) => {
//     if (err) return console.log(err);
//     console.log(res);
// })// console.log(333);// 2. 同步读取文件的内容
// fs.readFileSync('文件', '编码格式')
// '文件': 必填, 读取的文件名
// '编码格式': 选填,默认是Buffer, 建议 'utf-8'
// console.log(111);
// let res = fs.readFileSync('index.txt', 'utf-8')
// console.log(res);
// console.log(222);// 3. 异步写入内容
// fs.writeFile('写入文件', '内容', 回调函数)
// '写入文件': 必填。 如果没有这个文件就自动创建该文件。 如果有直接覆盖写入
// '内容': 必填
// 回调函数: 
// 不用参数: 写入之后的反馈    // console.log(111);
// fs.writeFile('index.txt', '你好,小貂蝉', () => {
//     console.log('恭喜写入完成了哦');
// })
// console.log(222);// 4. 同步写入内容
// fs.writeFileSync('写入文件', '内容')
console.log(111);
fs.writeFileSync('index1.txt', '你好,小猪佩奇')
console.log(222);

08-node的内置模块–path

// path: 处理路径的模块// 路径:
// 绝对路径
// d:/a/b/c/d.html
// 相对路径
// ./a/b/c.html  ../a/b.c.html   c.htmllet path = require('path')
// console.log(path);// 1. 拼接相对路径:let res = path.join('a', 'b', 'c/d', 'e.html')console.log(res); // a\b\c\d\e.html// 2. 拼接绝对路径let res1 = path.resolve('a', 'b', 'c/d', 'e.html')
let res2 = path.resolve('C:', 'a', 'b', 'c/d', 'e.html')// 注意:如果第一个参数不是绝对路径:拼接出来的路径是以当前js文件所在的绝对路径作为根路径的
// 注意:如果第一个参数是绝对路径: 拼接出来的路径就会以第一个参数作为根路径console.log(res1); // F:\XA2219\2023-01-09-node和包管理工具\code\06-path内置模块\a\b\c\d\e.html
console.log(res2); // C:\a\b\c\d\e.html// 3. 解析绝对路径: 返回一个对象
let res3 = path.parse('F:/XA2219/2023-01-09-node和包管理工具/code/06-path内置模块/a/b/c/d/e.html')
console.log(res3);
/* 
{root: 'F:/',  根路径dir: 'F:/XA2219/2023-01-09-node和包管理工具/code/06-path内置模块/a/b/c/d', 路径的完整信息base: 'e.html',  完整的文件名ext: '.html',  后缀name: 'e' 文件名
}
*/

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

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

相关文章

uni-app打包证书android

Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。 Android证书的生成是自助和免费的,不需要审批或付费。 可以使用JRE环境中的keytool命令生成。 以下是windows平台生成证…

MySQL、Oracle的时间类型字段自动更新:insert插入、update更新时,自动更新时间戳。设置自增主键id,oracle创建自增id序列和触发器

1. MySQL 支持设置自增id的字段类型:int、bigint、double等数值类型,一般用int、bigint支持设置自动更新时间的字段类型:datetime、timestamp下面sql中的now()函数可以用current_timestamp()替代 1.1. 不指定秒精度 drop table if exists …

Ollama 在本地快速部署大型语言模型,可进行定制并创建属于您自己的模型

# Ollama 在本地快速部署并运行大型语言模型。 macOS 点击下载 Windows 预览版 点击下载 Linux curl -fsSL https://ollama.com/install.sh | sh手动安装指南 Docker 官方的 Ollama Docker 镜像 ollama/ollama 已经在 Docker Hub 上发布。 库 ollama-pythonollama-js…

超详细测试项目——Web电商项目测试点整理.....

虽然说近些年来,软件测试找工作的时候,简历中如果写着电商项目被认为是烂大街的项目,甚至受到根本不了解行情的HR或者部分公司的技术人员的刁难,但是:电商这么流行普遍的项目和应用,这不是很正常么&#xf…

阿里云2核4G云服务器165元一年,ECS u1优惠价格199元一年

阿里云2核4G服务器租用优惠价格,轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月,活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图: 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

浅谈数据治理之道 数据采集(二)

数据采集是数据治理过程中的一个非常关键和重要地环节,不仅关系到数据的及时性、准确性、完整性和有效性等,还涉及到数据的安全和隐私。其次,涉及到从各种数据源获取原始数据,并将其转换为适合进一步处理和分析的格式。今天 咱们就…

如何从小白,到掌握Python

作为前端开发人员想要掌握Python编程语言,以下是一个学习路径建议: ### 初级阶段: 1. **学习Python基础:** - 学习Python的基本语法、数据类型、流程控制等基础知识。 - 可以通过在线教程、书籍或视频课程来学习&#xff…

Android单片机硬件通信《GPIO通信》

一、什么是GPIO? GPIO(英语:General-purpose input/output),通用型输入输出端口,在单片机上一般是通过一个GND引脚和若干个io引脚配合工作。 单片机可以配置GPIO输入输出模式,与外界环境进行通信交互。在输入环境下&…

网络传输(3):TFTP客户端使用

1. 简要说明 在前面的文章中已经讲述了如何安装TFTP客户端和TFTP服务器。其中: tftp-hpa为客户端 tftpd-hpa为服务器。 2. 启动TFTP服务器 我们在设置好相关的TFTP根路径,运行模式以后,可以通过如下指令重启TFTP服务器,使设置生…

【Node.js】events

EventEmitter 像是 Vue2 的event bus,或者Vue3 的 mitt。主要采用了发布订阅模式来处理事件。 const EventEmitter require(events);const event new EventEmitter() // 监听(订阅)事件 event.on(test,(data)>{console.log(data) })event.emit(test,testtt) /…

Visual Studio 2013 - 高亮设置突出显示的引用

Visual Studio 2013 - 高亮设置突出显示的引用 1. 高亮设置 突出显示的引用References 1. 高亮设置 突出显示的引用 工具 -> 选项… -> 环境 -> 字体和颜色 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

Flutter 事件传递简单概述、事件冒泡、事件穿透

前言 当前案例 Flutter SDK版本:3.13.2 本文对 事件传递只做 简单概述,主要讲解,事件传递过程中可能遇到的问题解决,比如 事件冒泡、事件穿透; 不是我偷懒,是自认为没有这几位写的详细、仔细&#xff0c…

xss漏洞总结

学了好久的漏洞,现在来做个小总结。 目录 一、xss简要概述 二、同源策略 三、主要危害 四、存在的场景 五、攻击类型 反射型、储存型、DOM型 六、绕过技巧 七、payload标签 八、防御 一、xss简要概述 概述: xxs全称:跨站脚本(cr…

乐优商城(九)数据同步RabbitMQ

1. 项目问题分析 现在项目中有三个独立的微服务: 商品微服务:原始数据保存在 MySQL 中,从 MySQL 中增删改查商品数据。搜索微服务:原始数据保存在 ES 的索引库中,从 ES 中查询商品数据。商品详情微服务:做…

【力扣hot100】128.最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 解…

JavaSE:类与对象

目录 一、前言 二、类与对象的介绍 1.类的定义格式 三、类的实例化 1.类的实例化介绍 2.成员初始化 3.类中方法的实现 四、封装 1.private实现封装 2.getter和setter方法 五、构造方法的使用 1.构造方法的介绍 2.构造方法的特性 六、this引用 1.this的介绍 2.th…

win10在更新黑屏(火绒查杀explorer.exe)屏幕只有鼠标

win10在更新黑屏(火绒查杀explorer.exe)屏幕只有鼠标 黑屏产生的原因修机过程方法1方法2方法3方法4总结 黑屏产生的原因 微软在Win10系统的最近更新中,为了和360抢夺搜索框的资源,微软进行特定的代码判断,如果在中国地…

rfc793-page36

rfc793原文 If the connection is in any non-synchronized state (LISTEN,SYN-SENT, SYN-RECEIVED), and the incoming segment acknowledgessomething not yet sent (the segment carries an unacceptable ACK), orif an incoming segment has a security level or compart…

jQuery详细教程

文章目录 前言一、安装与快速上手二、直接寻找标签1.ID选择器2.类选择器/样式选择器3.标签选择器4.层级选择器5.多选择器6.属性选择器 三、间接寻找标签1.找兄弟2.找父子 四、值操作五、事件六、样式操作 前言 jQuery是一个快速、简洁的JavaScript框架,是继Prototyp…

樊登读书-《终生成长》【视频笔记 +个人思考】

樊登读书-《终生成长》【视频笔记 个人思考】 成长型思维:能力可以通过努力来培养。 不急于证明。 情绪稳定。 不怕挫败。 不讲排场,这才哪儿到哪儿,这个世界有那么多东西需要去探索和学习。 不怕丢脸,说错了被嘲笑没关系&…