【Nodejs】Node-js笔记

news/2025/1/9 3:26:53/

Node.js


文章目录

  • Node.js
    • 一、Node.js概述
      • 1.1、介绍
      • 1.2、官网
      • 1.3、Node.js应用场景
      • 1.4、安装Node.js
      • 1.5、npm包管理器
        • 1.5.1、介绍
        • 1.5.2、切换npm源
        • 1.5.3、生成JSON配置文件
        • 1.5.4、查看当前安装的树形模块
        • 1.5.5、安装模块
        • 1.5.6、自定义脚本命令
        • 1.5.7 、自动重启应用
      • 1.6、模块化
    • 二、Node_js常用内置模块
      • 2.1、OS模块
      • 2.2、path模块
      • 2.3、url模块
      • 2.4、querystring模块
      • 2.5、fs模块


一、Node.js概述

1.1、介绍

Node.js 是一个开源与跨平台的JavaScript 运行时环境。它是在浏览器外运行,它是一个事件驱动异步I/O单进程的服务端JS环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。它使用新的 ECMAScript 标准,不必等待所有用户更新其浏览器,可以通过更改其版本来决定要使用新的标准特性。

1.2、官网

Node.js (nodejs.org)

Node.js 中文网 (nodejs.cn)

1.3、Node.js应用场景

  1. 创建应用服务
  2. Web静态资源服务和接口服务
  3. 客户端应用工具 gulp webpack vue脚手架 React脚手架

1.4、安装Node.js

nodejs环境安装非常便捷,直接可通过官网地址,下载对应的安装软件包即可安装使用。

在这里插入图片描述

注:尽量下载长期支持版本(LTS),如果在工作中有多个node环境的切换,可以安装ndoe环境管理工具NVM:https://github.com/coreybutler/nvm-windows/releases

nvm可以让你的电脑中有N多个node版本。

nvm安装与使用 - gaozejie - 博客园 (cnblogs.com)

node12.18 è node8 A项目 B项目 node9 C项目 node10

nvm list             查看已经安装的版本
nvm list available 查看网络可以安装的版本
nvm install nodejs 版本
nvm use <version>  切换使用指定的版本node   nvm use 10.xxx  
nvm current         显示当前版本

1.5、npm包管理器

安装好了nodejs后,npm就已经在电脑中

1.5.1、介绍

NPM(node package manager),通常称为node包管理器,它已经集成了nodejs安装包中。在npm从从5.2版开始,增加了 npx 命令(解决的主要问题,就是调用项目内部安装的模块,很多工具不再需要npm -g 全局来完成使用了),使用npm可以实现从npm远程数据库下载别人编写的第三方包到本地使用。

npm仓库地址:https://www.npmjs.com/

npm -v

在这里插入图片描述

1.5.2、切换npm源

npm使用国外镜像源地址,再有的时候可能网络不是很通顺,这时可以使用国内镜像源来完成npm下载模块功能

切换到阿里提供的npm镜像源

地址:https://developer.aliyun.com/mirror/NPM?from=tnpm

# 执行如下命令
npm config set registry https://registry.npm.taobao.org/
执行完毕上述命令后,在系统中提供了一个cnpm包管理工具,功能和npm一样,所不同的是cnpm镜像源地址为阿里提供的源地址。

查看使用镜像

在这里插入图片描述

Ø 使用nrm管理npm镜像源

nrm 是一个 npm 源管理器,允许你快速地在 npm源间切换。npm默认情况下是使用npm官方源(npm config list 来查看),如果直接修改npm源,如果后续需要连接到官方源才能工作,这样来回切换源就变得麻烦了,nrm通过简单的命令就可以解决此问题。

# 全局安装
npm i nrm -g
注
	-g global 全局,让nrm不限于到某一个项目中,而是在所有的项目中都可使用
	安装最新的nrm在window在会出现如下错误,解决方案如下
打开nrm的安装文件,一般是在这个路径下:
C:\Users\用户名(自动的账号名称)\AppData\Roaming\npm\node_modules\nrm
找到cli.js文件的第17行,此行代码 
const NRMRC = path.join(process.env.HOME, '.nrmrc');
做如下修改
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');# 查看可用源
nrm ls

在这里插入图片描述

在这里插入图片描述

 npm config list -l

在这里插入图片描述

npm cachean --force

在这里插入图片描述

以上都解决不了

安装

npm install -g nrm open@8.4.2 --save

在这里插入图片描述

# 切换
nrm use 名称(npm)
# 例如:nrm taobao

1.5.3、生成JSON配置文件

# 初始化生成package.json文件   项目中使用npm安装软件的记录文件
npm init -y[不询问]packename        包名(包名也不能和已经存在的包同名 wu-jquery)
version           版本
description      描述
main              入口文件
scripts          支持的脚本,默认是一个空的 test
keywords         关键字,有助于在人们使用 npm search 搜索时发现你的项目
author           作者
license:         版权许可证(默认:ISC)
dependencies     在生产环境中需要用到的依赖 -- 开发中多个包文件打到一个js文件中,在此文件中要有js些生产环境中就有  npm run build
devDependencies  在开发、测试环境中用到的依赖 -- 在本机开发时此时js能用的

1.5.4、查看当前安装的树形模块

# 查看本项目已安装模块
npm list
# 查看包可用版本
npm view jquery versions

1.5.5、安装模块

# 安装模块
npm install 模块名[@版本号 可选]npm i 模块名[@版本号 可选]
# 卸载已安装模块
npm uninstall 模块名
# 查看全局node_modules的地址
npm root -g## 安装参数
--save -S     记录生产环境所需模块 默认
--save-dev -D 记录开发环境所需模块
-g 安装到全局

1.5.6、自定义脚本命令

通过package.json文件中的scripts自定义脚本命令

{"scripts": {"test": "echo hello"}
}# 运行命令
npm run test

在这里插入图片描述

1.5.7 、自动重启应用

在编写调试Node.js项目,修改代码后需要频繁的手动重启应用,非常繁琐。nodemon这个工具,它的作用是监听代码文件的变动,当代码改变之后,自动重启。

# 全局安装nodemon
npm i -g nodemon# 执行node脚本
nodemon app.js// 一个web服务,启动后会在内存在运行,而我们修改的是磁盘中的文件
// 修改后的文件不会立即更新到服务中,手动重启,在生产环境中正常,开发环境如果频繁的这样操作,开发效率无从谈起。需要一个能够监听文件的修改,一旦有修改文件就是自动更新到内存服务中
// npm i -g nodemon
// 启动文件
// 之前nodejs运行文件  node 文件.js
// nodemon之后        nodemon 文件.js

在这里插入图片描述

1.6、模块化

NodeJs基于 Commonjs模块化开发的规范,它定义一个JS文件就称之为一个模块

node的模块类型

Ø 核心模块 - 安装nodejs自带的模块

Ø 第三方模块 - 需要手动通过(npm/yarn)来进行安装

Ø 自定义模块 - 开发者自己编写开发 (一个文件就是一个模块[理解])

导出  module.exports/exports
导入  require   require导入是以单例模式,导入相同的对象,全局只有一个实例

在这里插入图片描述
在这里插入图片描述

二、Node_js常用内置模块

2.1、OS模块

os模块提供了与操作系统相关的实用方法和属性。

const os = require('os')
# 换行符
os.EOL 根据操作系统生成对应的换行符 window \r\n,linux下面 \n# 查看cpu相关信息
os.cpus()# 总内存大小 (单位 字节) kb mb g
os.totalmem()
# 空余内存大小 (单位 字节)
os.freemem()

在这里插入图片描述

2.2、path模块

path模块用于处理文件和目录(文件夹)的路径

const path = require('path')# 获取路径最后一部内容  一般用它来获取文件名称
path.basename('c:/a/b/c/d.html')  // d.html# 获取目录名,路径最后分隔符部分被忽略
path.dirname('c:/a/b/c/d.html') // c:/a/b/c# 获取路径中文件扩展名
path.extname('c:/a/b/c/d.html') // .html# 给定的路径连接在一起
path.join('/a', 'b', 'c') // /a/b/c
# 把相对地址转为绝对路径
path.resolve('/a', '../b')

在这里插入图片描述

2.3、url模块

URL字符串是结构化的字符串,包含多个含义不同的组成部分。 解析字符串后返回的 URL 对象,每个属性对应字符串的各个组成部分。

在这里插入图片描述

const url = require('url');const href = 'http://www.xxx.com:8080/pathname?id=100#bbb'
// 解析网址,返回Url对象
// 参2 如果为true 则 query获取得到的为对象形式
url.parse(href,true)

在这里插入图片描述

2.4、querystring模块

用于解析和格式化 URL 查询字符串的实用工具

const querystring = require('querystring')# query字符串转为对象
querystring.parse('foo=bar&abc=xyz')# 对象转为query字符串
querystring.stringify({ foo: 'bar',abc: 'xyz'})]

在这里插入图片描述

2.5、fs模块

fs模块提供了用于与文件进行交互相关方法

const fs = require('fs')# 写入数据
fs.writeFile(文件路径,数据,err=>{})# 读取文件中数据
fs.readFile(文件, 'utf8’,(err,data)=>{})# 检查文件是否存在    返回true/false
fs.existsSync(path)# 获取文件信息
fs.stat(文件,(err,stats)=>{stats.isDirectory() // 是否是目录stats.isFile()       // 是否为文件stats.size            // 文件大小(以字节为单位)
})# 删除文件
fs.unlink(文件,err=>{})

写入文件

在这里插入图片描述

在这里插入图片描述

判断文件是否存在

在这里插入图片描述

查看文件属性

在这里插入图片描述

查看当前目录中的文件列表

在这里插入图片描述


END

知识共享许可协议

http://www.ppmy.cn/news/102866.html

相关文章

Java的运行原理

在Java中引入了虚拟机的概念&#xff0c;即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机&#xff0c;生成虚拟机能够理解的代码&#xff0c;然后由解释器来将虚拟机代码转换为特定…

如何撤消 Git 中最新的本地提交?

在使用Git进行版本控制时&#xff0c;有时我们可能会犯下错误或者想要撤销最新的本地提交。Git提供了一些强大的工具和命令&#xff0c;使我们能够轻松地撤消最近的提交并修复错误。 本文将详细介绍如何在Git中撤消最新的本地提交。 步骤1&#xff1a;查看提交历史 在撤消最新…

智能化、多模态、平民化,星环科技行业大模型、向量数据库深度解析

星环科技落地未来数据技术&#xff0c;实现数据处理智能化、多模态、平民化。 出品 | CSDN云计算 以ChatGPT为代表的超大语言模型的迅速应用&#xff0c;加速了AI普及&#xff0c;让AI伸手可及&#xff0c;并开始走进我们的工作和生活。毫无疑问&#xff0c;AI大模型等技术已经…

前端常见跨域解决方案(jsonp,cors,proxy,postMessage,webSocket)

跨域的几种解决方案&#xff1a; 一、JSONP&#xff08;jsonp&#xff09; 概念&#xff1a; JSONP&#xff08;JSON with Padding&#xff0c;填充式 JSON 或参数式 JSON&#xff09;是一种通过 优点&#xff1a; 简单易用兼容性好&#xff0c;支持各种浏览器 缺点&…

组合总和 II

1题目 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 示例 1: 输入: candidates [10,1…

旋转设备轴承故障,有哪些常见原因及监测手段?

在各种旋转设备中&#xff0c;轴承是关键的构件之一。轴承的正常运行对于设备的稳定性、寿命和效率至关重要。然而&#xff0c;轴承也是容易出现故障的部件之一。为了及时发现轴承故障并采取维修措施&#xff0c;监测轴承状态变得至关重要。本文将介绍旋转设备轴承常见的故障问…

关于Gitee上传代码以后主页没有显示贡献度(没有显示小绿块)

事情起因&#xff1a;在一个闲暇的下午&#xff0c;吃着火锅唱着歌&#xff0c;突然&#xff01;我发现我的Gitee有一片白 起初&#xff0c;没有人在意这场灾难 当我首次发现这个问题的时候&#xff0c;我毫无波澜的认为是Gitee出现了BUG。因为我的这些空白天数里都是有提交的…

内网环境制作nacos镜像

1. 拉取用于构建的镜像 git clone https://github.com/nacos-group/nacos-docker.git 拉去下来是这样的 下载nacos压缩包 https://github.com/alibaba/nacos/tags 以2.2.2版本为例 将下载的压缩包&#xff0c;放到build文件夹 3. 修改Dockerfile文件 4.将build下的文件上…