Node.js简介及安装

一、Nodejs简介

1、核心定义

        Node.js 是一个基于 Chrome V8 引擎的开源、跨平台 JavaScript 运行时环境(Runtime),用于在服务器端或本地运行 JavaScript 代码。它并非编程语言、库或框架,而是扩展了 JavaScript 的能力,使其脱离浏览器沙盒,能够访问文件系统、网络等系统资源,实现全栈开发。

2、核心特点

        Node.js 的设计理念围绕“高效处理并发”展开,关键特点如下:

        ◆ 非阻塞 I/O(事件驱动):处理文件读写、网络请求等 I/O 操作时,不等待结果返回,而是继续处理其他请求;当 I/O 完成后,通过回调函数通知主线程。这种模式大幅提高了 I/O 密集型应用的并发能力。

        ◆ 单线程架构:使用一个主线程处理事件循环(Event Loop),避免了多线程切换的开销和复杂性。但单线程意味着无法并行处理 CPU 密集型任务(如复杂计算),否则会阻塞整个进程。

        ◆ 跨平台支持:可在 Windows、Linux、macOS 等操作系统上运行,实现“一次编写,多处部署”。

        ◆ 高性能 V8 引擎:基于 Google Chrome 的 V8 引擎,将 JavaScript 代码编译为机器码执行,执行速度快,性能出色。

3、核心组成与模块

        Node.js 的功能由内置核心模块和第三方模块共同支撑:

        1. 内置核心模块(无需安装,直接使用)

        ◆ fs:文件系统操作(如读取、写入、删除文件);

        ◆ http/https:创建 HTTP/HTTPS 服务器和客户端,处理网络请求;

        ◆ path:处理文件路径(如拼接、解析路径);

        ◆ os:获取操作系统信息(如 CPU 架构、内存容量);

        ◆ events:实现事件驱动机制(如自定义事件、监听事件);

        ◆ stream:处理数据流(如文件流、网络流),提高 I/O 效率。

        2. 第三方模块(通过 npm 管理)

        npm(Node Package Manager):Node.js 的包管理工具,是全球最大的 JavaScript 开源库生态系统。开发者可通过 npm install 命令快速安装第三方模块(如 npm install express 安装 Express 框架),也可发布自己的模块供他人使用。

4、适用场景

        Node.js 适合I/O 密集型应用(而非 CPU 密集型),常见场景包括:

        ◆ 实时应用:如实时聊天(微信小程序后端)、视频流服务(抖音直播)、协作工具(腾讯文档),事件驱动模型能快速响应实时请求;

        ◆ API 服务:构建 RESTful API 或 GraphQL API,为前端应用(如 React、Vue)提供数据接口;

        ◆ 单页应用(SPA)后端:处理前端路由、数据交互等,简化全栈开发流程;

        ◆ 微服务架构:作为微服务节点,轻量、高效的特性有助于构建可扩展的分布式系统;

        ◆ 命令行工具:如 Webpack、Gulp 等前端构建工具,均基于 Node.js 开发。

5、生态系统

        Node.js 的生态系统极为丰富,关键组件包括:

        框架:

        ◆ Express.js:极简 Web 框架,简化路由、中间件等开发流程(如 app.get('/api/user', (req, res) => res.send('user data')));

        ◆ Koa.js:Express 团队开发的下一代框架,采用 async/await 语法,更简洁、灵活;

        工具:

        ◆ Socket.io:实现实时双向通信(支持 WebSocket),适用于实时聊天、多人游戏;

        ◆ Mongoose:MongoDB 的对象文档模型(ODM)库,简化数据库操作;

        ◆ 数据库:MongoDB(NoSQL)、MySQL(关系型)等,均与 Node.js 配合良好。

6、总结

        Node.js 的出现让 JavaScript 从“浏览器端语言”升级为“全栈语言”,其核心优势在于非阻塞 I/O 和事件驱动模型,使其在 I/O 密集型应用中表现出色。通过庞大的生态系统,开发者可以快速构建高效、可扩展的应用,大幅降低全栈开发的学习成本。

        无论是前端开发者想了解前后端交互,还是后端开发者想尝试轻量级服务,Node.js 都是值得学习的重要技术。💡

二、Nodejs下载安装

1、Nodejs下载

官网下载地址:Node.js — Download Node.js®

中文网下载地址:下载 Node.js

或者直接输入Node.js官网IP地址(如https://nodejs.org/dist/latest-v16.x/)尝试访问。‌‌

2、Nodejs安装

◆ 双击压缩包出现安装界面点击【Next】

◆ 点击【Change...】后修改安装路径(建议放在C盘外的其他盘中)后点击【Next】

◆ 该页面可根据自身需求进行选择,没有特殊需求选择默认设置安装,直接点击【next】

◆ 直接点击【Next】

◆ 点击【Install】

◆ 安装完成,点击【Finish】

3、安装验证

        测试是否安装成功,使用【 win+R】 键,输入cmd,打开命令窗口

        窗口内输入:

node -v   //显示node.js版本
npm -v    //显示npm版本

        给出结果如下则安装成功:

三、Nodejs环境配置

        1、打开安装的目录,在安装目录下新建两个文件夹【node_global】和【node_cache】

        2、再次打开cmd命令窗口,输入npm config set prefix “你的路径\node_global” 以及  npm config set cache “你的路径\node_cache” (可直接复制刚刚新建的空文件夹目录,执行时候建议使用管理员权限打开CMD,否则有可能会提示权限不够报错

npm config set prefix “你的路径\node_global”
npm config set cache “你的路径\node_cache”

        3、设置环境变量,打开【系统属性】-【高级】-【环境变量】,在系统变量中新建变量名及变量值( 用来告诉系统, 下载的模块或者包都在这里了),如下是以个人安装路径为例子:

变量名:NODE_PATH

变量值:D:\Path\nodejs\node_global\node_modules

        配置保存后在 node_global 文件中会多出一个 node_modules 文件,如果输入变量值后 node_global 文件中没有自动创建 node_modules 文件夹,可以手动在node_gobal 中创建一个 node_modules 文件夹,然后把 node_modules 文件夹的路径地址复制并粘贴到变量值。           

        4、编辑 用户变量 中的 PATH,将默认的C盘下的 C:\Users\21639\AppData\Roaming\npm 修改为 node_global 的路径,然后点击确定

        5、在 系统变量 中选择 PATH 点击编辑,添加【NODE_PATH】,然后一直点击确定 

        6、配置完成后,全局安装一个最常用的 express 模块进行测试

        如果上述操作过后安装express失败,可以对nodejs文件中的 node_global 以及 node_cache 文件夹权限进行修改,鼠标右击的文件夹,点击【属性】,再点击【安全】,再点击【编辑】,将权限都勾上后保存即可,如若还不行就把nodejs整个文件夹权限放开即可。

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

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

相关文章

KINGBASE集群日常维护管理命令总结

查看集群的状态 [kingbasenode1 bin]$ repmgr cluster show查看守护集群状态 [kingbasenode1 bin]$ repmgr service status查看集群的事件 [kingbasenode1 etc]$ repmgr cluster event查看集群流复制状态 esrep#select usename,application_name,client_addr,sync_state,state,…

GoLand 调参高手都在用的配置!续集:WebStorm 飞升后,Go 开发 IDE 性能炸裂的秘密

“为什么别人的 GoLand 运行 Go 项目丝滑流畅,而你的却频繁卡顿、编译转圈?秘密就藏在这个 goland64.exe.vmoptions文件里!作为 IDEA/PyCharm/WebStorm 调优系列的续集,我把我压箱底的 ​GoLand 性能调优参数表​ 分享出来—>&…

48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径

ISBN号 ISBN号码_牛客题霸_牛客网 算法原理 模拟,根据题意模拟就可以了,注意一下余数为10的时候要特别判断一下是不是X就行了 代码 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public stat…

Java 泛型类型擦除

📖 概述 本文档详细解释了 Flink 中 TypeInformation 的作用、原理和使用方法,帮助理解为什么 Flink 需要显式的类型信息。 🎯 核心问题:Java 泛型类型擦除 什么是类型擦除? Java 在编译时会将泛型信息擦除&#xff0c…

从“写代码”到“定义需求”:AI编程工具如何重构软件开发的核心流程?

从“写代码”到“定义需求”:AI编程工具如何重构软件开发的核心流程? 软件开发的核心流程正在经历一场静默革命。十年前,开发者的日常被“写代码”填满——从变量定义到逻辑实现,每行代码都需要手动敲击;而今天&#x…

一颗TTS语音芯片给产品增加智能语音播报能力

​一颗TTS语音芯片给产品增加智能语音播报能力传统语音播报芯片可以设置一些固定的语音片段或者内容,但是对于现在各种创新产品层出不穷的时代,传统的语音播报芯片能力似乎有点不够用了。而TTS语音合成芯片,正在逐渐登上舞台中央。TTS语音合成…

[免费]基于Python的影视数据可视化分析系统(Flask+echarts)【论文+源码+SQL脚本】

大家好,我是python222_小锋老师,看到一个不错的基于Python的影视数据可视化分析系统(Flaskecharts),分享下哈。 项目视频演示 【免费】基于Python的爱奇艺影视电影数据可视化分析系统(Flaskecharts) Python毕业设计_哔哩哔哩_bilibili 系统…

Three.js 材质系统深度解析

简介 Three.js 是一个功能强大的开源 3D 图形库,广泛应用于 Web 端的 3D 可视化开发。其材质系统是 Three.js 的核心组成部分之一,负责定义 3D 对象的表面外观和渲染效果。从简单的颜色填充到复杂的动态效果,材质系统为开发者提供了高度灵活…

FP16(半精度)和FP32(单精度)

FP16(Half-Precision Floating Point,半精度浮点数)是一种使用16位二进制数表示浮点数值的数据格式,在深度学习、图形渲染和高性能计算中广泛应用。其核心定义、技术特性与应用价值如下:一、FP16的核心定义与结构二进制…

基于Vue + Node能源采购系统的设计与实现/基于express的能源管理系统#node.js

基于Vue Node能源采购系统的设计与实现/基于express的能源管理系统#node.js

代码管理系统简介与部署

目录版本控制1:版本控制概念2:版本控制的功能(1)检入检出控制(2)分支和合井(3)历史记录3:版本控制的流程(1)创建配置项。(2&#xff0…

Pandas数据结构详解Series与DataFrame

Pandas数据结构详解:Series与DataFrame实战指南 前言 Pandas是Python数据分析的核心库,其强大的数据处理能力主要基于两种核心数据结构:Series和DataFrame。本文将深入解析这两种数据结构的概念、创建方式、常用属性和方法,并通…

TensorRT-LLM.V1.1.0rc0:在无 GitHub 访问权限的服务器上编译 TensorRT-LLM 的完整实践

一、TensorRT-LLM有三种安装方式,从简单到难 1.NGC上的预构建发布容器进行部署,见《tensorrt-llm0.20.0离线部署DeepSeek-R1-Distill-Qwen-32B》。 2.通过pip进行部署。 3.从源头构建再部署。 在实际开发中,我们常常面临这样的场景:本地笔记…

完整、可落地的 Elasticsearch 拼音补全配置模板 设计方案

在中文搜索场景中,用户经常使用拼音输入(如 “iPhone”、“pingguo”)来搜索中文内容(如“苹果手机”)。为了提升用户体验,Elasticsearch 可通过 拼音分词器 Completion Suggester 实现 拼音补全&#xff…

Redis面试精讲 Day 23:Redis与数据库数据一致性保障

【Redis面试精讲 Day 23】Redis与数据库数据一致性保障 在“Redis面试精讲”系列的第23天,我们将深入探讨Redis与数据库数据一致性保障这一在高并发分布式系统中极为关键的技术难题。该主题是面试中的高频压轴题,常出现在中高级后端开发、架构师岗位的考…

HTML <link rel=“preload“>:提前加载关键资源的性能优化利器

在网页性能优化中&#xff0c;“资源加载时机”是影响用户体验的关键因素——一个延迟加载的核心CSS可能导致页面“闪白”&#xff0c;一段未及时加载的关键JS可能让交互按钮失效。传统的资源加载方式&#xff08;如<link>加载CSS、<script>加载JS&#xff09;依赖…

WPF加载记忆上次图像

问题点使用MVVM先viewModel构造函数然后才Loaded事件,但Loaded事情时halcon控件没有加载完毕。Window_ContentRendered事件中halcon控件才有了句柄。解决问题1.viewModel函数中调用相机的类获取相机名(在这里是为了MVVM中以后可以做其它的事情如识别二维码)2.在Window_ContentR…

AT89C52单片机介绍

目录 1AT89C52原理图及结构框图 1.1 原理图 1.2 AT89C52 结构框图 1.2.1 8 位 CPU 1.2.2 存储器 1.2.3 I/O 端口 1.2.4 定时器 / 计数器 1.2.5 串行通信接口 1.2.6 中断系统 1.2.7 时钟与复位 1.2.8 总线结构 1.2.9 特殊功能寄存器区 2 AT89C52引脚介绍(PDIP) …

联网车辆功能安全和网络安全的挑战与当前解决方案

摘要在过去的二十年里&#xff0c;数字化重塑了我们的日常生活&#xff0c;汽车行业也身处这一变革之中。如今的车辆正变得日益智能且联网&#xff0c;具备了更多的安全和便捷功能&#xff08;如自动紧急制动、自适应巡航控制&#xff09;。下一代车辆将实现高度自动化乃至 5 级…

网络安全(Java语言)脚本 汇总(二)

文章目录目录遍历漏洞扫描器源代码思路一、核心功能二、依赖库三、核心流程四、关键方法五、数据结构六、输出信息目录遍历漏洞扫描器 源代码 /*** description : 目录遍历漏洞扫描器* 注意; 在输入URL时 要求必须保存 ?page 的末尾 才能保证路径合成的有效性*//*** desc…