【Nodejs】Node-js概述

news2025/1/11 8:37:05

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概述

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Larhpy0u-1684986885439)(./img/image-20230523202404377.png)]

1.6、模块化

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

node的模块类型

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

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

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

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

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


END

知识共享许可协议

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

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

相关文章

机房管理技能,医疗行业必备!

机房是一个很复杂的地方&#xff0c;存放设备数量大且杂&#xff0c;再加上大量使用电&#xff0c;机房存在各种各样的隐患&#xff0c;给机房管理带来极大的难度。 因此&#xff0c;想要很好的管理机房、避免机房出现各种危险&#xff0c;就需要应用机房动环监控系统&#xff…

MT8395(Genio 1200)处理器性能参数介绍

MT8395(Genio 1200)是一款专为AI与高性能物联网应用而设计的通用型SoC&#xff0c;采用6nm制程工艺&#xff0c;已集成四核A78和四核A55的八核CPU。Genio 1200还集成Mali-G57图形处理器&#xff0c;内置独立的双核AI处理器&#xff0c;可应用于智能家电、中控设备、商业显示、工…

如何在Windows 11更新后解决C盘已满的问题?

Windows 11比Windows 10需要占用C盘更多的空间&#xff0c;在升级到Windows 11后&#xff0c;如果升级后出现问题&#xff0c;安装程序可以帮你退回到Windows 10。无论怎样&#xff0c;在升级到Windows 11后&#xff0c;系统会自动制作以前的数据的副本&#xff0c;这会占用大量…

chatgpt赋能python:Pythonshowinfo:了解Python中弹出消息框的方法以及使用场景

Python showinfo: 了解Python中弹出消息框的方法以及使用场景 Python是一种著名的编程语言&#xff0c;用来编写各种应用程序和脚本。在Python中&#xff0c;弹出消息框是一种帮助开发人员和用户更好地交互的常见方法之一。showinfo是Python中的一个函数&#xff0c;它可以用来…

chatgpt赋能python:Python与SICP:重塑编程的未来

Python与SICP&#xff1a;重塑编程的未来 介绍 随着现代生活的发展&#xff0c;计算机在我们的生活中扮演越来越重要的角色。而Python语言则成为了众多开发者使用的首选语言。作为一门高级编程语言&#xff0c;Python在开发业界广受欢迎&#xff0c;并且得到了MIT计算机科学家…

成年人自学黑客,远比你想的更难......

什么是黑客 Hacker一词&#xff0c;最初曾指热心于计算机技术、水平高超的电脑高手&#xff0c;尤其是程序设计人员 黑客演变出哪些类型 白帽黑客 白帽黑客是指通过实施渗透测试&#xff0c;识别网络安全漏洞&#xff0c;为政府及组织工作并获得授权或认证的黑客。他们也确保…

1123 Is It a Complete AVL Tree (PAT甲级)

这道题是看了柳婼的解法才搞定的。开始想着把height和parent放到结构体中去&#xff0c;很繁琐最后还搞不定…… #include <cstdio> #include <algorithm> #include <vector>struct node{int key;node* left nullptr;node* right nullptr; };int N, t, pi…

【Netty】字节缓冲区 ByteBuf (六)(上)

文章目录 前言一、ByteBuf类二、ByteBuffer 实现原理2.1 ByteBuffer 写入模式2.2 ByteBuffer 读取模式2.3 ByteBuffer 写入模式切换为读取模式2.4 clear() 与 compact() 方法2.5 ByteBuffer 使用案例 总结 前言 回顾Netty系列文章&#xff1a; Netty 概述&#xff08;一&…

【2023 · CANN训练营第一季】昇腾AI入门课(TensorFlow)——第一章 昇腾AI基础知识介绍

一、昇腾AI全栈架构 异腾AI全栈可以分成四个大部分: 1.应用使能层面&#xff0c;此层面通常包含用于部署模型的软硬件&#xff0c;例如API、SDK、部署平 台&#xff0c;模型库等等。 2.AI框架层面&#xff0c;此层面包含用于构建模型的训练框架&#xff0c;例如华为的MindSpore…

Redis-数据结构

前言 ​ 了解Redis&#xff0c;都大概知道Redis有5种基本数据类型&#xff1a;字符串(string)、列表(list)、哈希(hash)、集合(set)、有序集合(zset)、5.0中Stream数据类型。但是这些数据类型的底层都是按照对象结构与对应的编码组合而成。这也就是说有的底层数据结构可以是多…

Python+Yolov5果树上的水果(苹果)检测识别

程序示例精选 PythonYolov5果树上的水果(苹果)检测识别 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonYolov5果树上的水果(苹果)检测识别>>编写代码&#xff0c;代码整洁…

Spring Data Mongo更新整个对象

第一步&#xff1a;在pom.xml文件中引入下述依赖&#xff0c;当前Spring Boot的版本为 2.7.6&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId><version>…

【产品人卫朋】华为IPD体系:IPD相关术语

目录 术语合集 课程 术语合集 BB&#xff1a;building block&#xff0c;组件 BG&#xff1a;business group&#xff0c;业务群 BLM&#xff1a;business leadership model&#xff0c;业务领先模型 BMT&#xff1a;business management team&#xff0c;业务管理团队 B…

这6个超实用的图片素材网站,高清、免费,赶紧马住

推荐6个超实用的图片素材网站&#xff0c;高清无水印&#xff0c;绝对值得收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/pic.html#?vNTYxMjky 网站主要是为新手设计师提供免费素材的&#xff0c;素材的质量都很高&#xff0c;类别也很多&#xff0c;像平面、UI、…

Restful接口开发与测试—接口测试

开发完接口&#xff0c;接下来我们需要对我们开发的接口进行测试。接口测试的方法比较多&#xff0c;使用接口工具或者Python来测试都可以&#xff0c;工具方面比如之前我们学习过的Postman或者Jmeter &#xff0c;Python脚本测试可以使用Requests unittest来测试。 测试思路…

数据结构中常见的树

二叉树&#xff1a;每个子节点只有两个节点的树&#xff0c;每个结点至多拥有两棵子树(即二叉树中不存在度大于2的结 点)&#xff0c;并且&#xff0c;二叉树的子树有左右之分&#xff0c;其次序不能任意颠倒 我们一般在解题过程中二叉树有两种主要的形式&#xff1a;满二叉树…

徐延涛:医疗健康企业如何重构客户管理的“营销”与“服务”?

随着人口老龄化和生活健康水平的提升&#xff0c;中国的医疗健康行业市场规模前景向好。《2023易凯资本中国健康产业白皮书》显示&#xff0c;从2022年到2030年的八年里&#xff0c;中国健康产业的整体规模将从10万亿元增长到接近20万亿&#xff0c;年复合增长率将达到9.5%-10%…

TS入门(TS类型有哪些?怎么使用?)

TS简介 TS&#xff08;TypeScript&#xff09;是一种由微软开发的开源编程语言&#xff0c;它是 JavaScript 的超集&#xff0c;能够为 JavaScript 添加静态类型检查和面向对象编程的特性。TS 可以在编译时进行类型检查&#xff0c;从而提高代码的可读性、可维护性和可靠性&am…

PMP课堂模拟题目及解析(第12期)

111. 客户拒绝了一项交付成果&#xff0c;因为它不符合约定的质量规格&#xff0c;项目团队调查该问题&#xff0c;并确定供应商提供的零件有问题&#xff0c;供应商拒绝纠正这种情况。项目经理应该审查什么&#xff1f; A. 与供应商订立的服务水平协议 B. 采购管理计划和合…

从领英退出中国,解析融云《社交泛娱乐出海作战地图》从0到1出海方法论

近期&#xff0c;“领英职场”宣布将于 2023 年 8 月 9 日起正式停止服务。移步【融云全球互联网通信云】回复“地图”免费领 一时之间&#xff0c;网友纷纷送上祭文。有人觉得猝不及防&#xff0c;但更多人直言并不意外。 领英在中国的折戟终局&#xff0c;似乎从 2021 年改版…