0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

工程师必备!Node.js和常见管理工具介绍(附操作演示)

亿佰特物联网应用专家 2024-08-30 12:34 次阅读

在现代软件开发中,JavaScript已成为一种广泛使用的编程语言,在web前端开发、后端开发、移动应用端开发等领域中都有它的身影。在本文中,将从JavaScript语言为出发点,揭示这一语言及其相关生态中的一些基础而关键的概念,以及它们是如何在互联网历史浪潮中产生的。

JavaScript与Node.js

1

JavaScript

JavaScript,即JS,一门高级的、解释性的编程语言,与我们常用的C、C++这些编译性语言相比,JavaScript特殊之处在于它是动态的解释性语言,特征是在执行时不需要提前编译成机器码,而是由解释器逐行读取并执行。

虽然JavaScript名字带Java,但在语言方面没有直接关系,而是有一种间接的缘分。这个要从JavaScript开发的初衷讲起。在以前没有网页脚本语言的时候,网页所有的操作都要发送到服务器再返回,效率低下。所以需要一种嵌入到网页的脚本语言,用来控制一些简单的浏览器行为,比如在本地做一些检查等。因此网景公司(Netscape)和Sun公司合作开发了一款叫LiveScript的浏览器脚本语言,后来正式发布时更名为JavaScript,而Sun公司正是Java语言的发明者和拥有者。

JavaScript借鉴了Java的部分语法,但是语法更加奔放自由,且其他方面也有很大区别,主要是两者应用环境大有不同。

2

Node.js

Node.js是一个JavaScript的运行环境,用来执行JavaScript代码。

为什么会出现这么一个运行环境呢,从JavaScript研发初衷可以看出它是为了运行在浏览器中的,让网页交互更加便捷。但是随着JavaScript影响力不断壮大,它的使用范围已经发生了变化。2009年,Node.js发布,初代版本支持基本的网络通信和文件系统操作,这让JavaScript可以到服务器上大展拳脚,标志着JavaScript可以用于服务器端编程。

Node.js中node是指一个节点,在这里我们可以用来形容一种环境,而后面.js则是代表这是针对JavaScript的,防止与其他的node项目混淆,但是随着Node.js知名度越来越高,现在几乎直接以node代指Node.js了。

Node.js的出现推动了JavaScript的全栈开发,允许开发者使用同一种语言编写前端和后端代码。

Node.js除了提供JavaScript运行环境外,还提供了丰富的模块库,可以直接在开发时引入,使得开发更加高效和便捷。

Node.js采用了事件驱动、非阻塞式I/O模型,这意味着它可以在单线程上处理大量并发连接。传统的服务端编程模型通常是多线程或多进程的,每个连接都需要一个独立的线程或进程来处理,这在处理大量并发连接时会造成很大的性能损耗。而Node.js通过事件循环和回调函数的方式,实现了非阻塞式I/O操作,使得单个线程可以处理更多的并发连接,从而提高了整体性能。

3

JavaScript引擎与V8引擎

为什么Node.js能够运行JavaScript呢,因为它里面内置了JavaScript V8引擎,这是一款由Google开发的引擎。

那什么是引擎呢?这里提到的引擎是指JavaScript引擎,简单来说也就是能够将Javascript代码处理并执行的运行环境,引擎包含了解释器、编译器等部分。

浏览器之所以能够运行JavaScript,是因为每款浏览器都有自己的JavaScript引擎,具体如下:

338d949c-6689-11ef-89ff-92fbcf53809c.png

可以看出,浏览器中嵌入JavaScript引擎,这是以前最常见的一种模式。直到Node.js的出现,使得JavaScript能够脱离浏览器发展,并且做到了跨平台,使其能够在不同的操作系统上运行。

Node.js的安装与常用管理工具

本小节演示环境系统为ubuntu22.04,其他发行版Linux系统除命令有细微差别外,其余一致。

在开始操作之前,我们再简单了解几个与Node.js相关的概念,可以帮助我们更了解自己接下来的操作。

nvm:即Node Version Manager,根据名字很明显可以看出,这是用来安装和管理Node.js版本的。

npm:即Node Package Manager,我们之前提到过Node.js里面除了携带了V8引擎,还携带了很多模块库,npm则是负责管理这些功能模块库的,这些功能模块也就是我们所说的项目依赖。目前版本的npm会随着Node.js的安装一同被安装,所以非特殊情况不用单独安装。

1.使用nvm安装和管理Node.js

官网提供了如何使用nvm来安装Node.js,想深入了解可移步:https://nodejs.org/en/download/package-manager

下面将展示在ubuntu系统下进行安装的简单流程:

1.1 安装nvm

使用如下命令安装nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

如果你的网络无法拉取github的内容,可以使用如下方法通过gitee来安装nvm:

#先安装gitsudoapt-getinstallgit#再安装nvmcurl -o- https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh | bash

安装完毕后,可以看到用户目录中多了.nvm文件夹。

339d82d0-6689-11ef-89ff-92fbcf53809c.png

安装完毕后,可以重新打开终端或者运行以下命令来让nvm立即生效:

source ~/.nvm/nvm.sh

nvm生效后,可以使用nvm -v命令来检查nvm版本。

33b0e596-6689-11ef-89ff-92fbcf53809c.png

1.2 安装Node.js

使用刚刚安装的nvm来安装Node.js,执行如下命令,可以安装最新的稳定版Node.js:

nvm install node

若想安装非最新版,而想指定版本进行安装,使用如下命令,例如安装16.20.2版本的Node.js:

nvm install 16

当然也可以安装其他更多的版本,这些版本都会受到nvm管理,并且可以通过nvm来对这些版本进行操作,例如使用如下命令查看当前安装的版本:

nvm list

通过下图可以看到我们已经安装了16和22版本的Node.js,下面是nvm工具中一些版本的别名,我们可以忽略。当前使用的版本是16.20.2版本。

33b4b78e-6689-11ef-89ff-92fbcf53809c.png

如果想切换Node.js版本环境进行开发,使用如下命令:

nvm use 22

下图中可以看到已经切换为22版本了。

33d22170-6689-11ef-89ff-92fbcf53809c.png

1.3 创建一个简单的JavaScript程序

创建一个名为getUptime.js的JavaScript程序,简单写入一个功能,使用内置模块功能获取系统运行时间。

constos=require('os')//引入os模块
constuptime=os.uptime()//获取系统运行时间console.log(`system uptime: ${uptime} sec`)

保存后,使用如下命令执行该文件:

node getUptime.js

得到如下输出内容:

33ebe876-6689-11ef-89ff-92fbcf53809c.png

可以看到在这个简单的操作中,Node.js扮演了很重要的角色,它不止能运行JavaScript程序,也给JavaScript提供了丰富的模块库。除了内置模块外,Node.js还支持通过npm引入第三方模块生态系统,这些模块可以为JavaScript提供几乎无限的扩展能力。

关于Node.js小科普的上篇内容到这里就结束了。在下篇中,我们将围绕Node.js项目开发,简单讨论如何用npm构建项目结构、依赖管理等,也会提到如何使用pm2进行Node.js应用程序的进程管理。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8688

    浏览量

    84520
  • JAVA
    +关注

    关注

    19

    文章

    2942

    浏览量

    104081
  • 编程语言
    +关注

    关注

    10

    文章

    1914

    浏览量

    34367
收藏 人收藏

    评论

    相关推荐

    飞凌嵌入式4G/5G网卡自管理工具,你的守护进程专家

    为了帮助用户解决无法高效、稳定地管理嵌入式设备上的无线模块的问题,飞凌嵌入式精心打造了 4G/5G网卡自管理工具,旨在以更智能化的管理策略和更灵活的配置方式为用户带来更加便捷的网络管理
    的头像 发表于 07-12 15:27 1116次阅读
    飞凌嵌入式4G/5G网卡自<b class='flag-5'>管理工具</b>,你的守护进程专家

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    鸿蒙 Harmony 工具

    平台做的自定义 IDE。因此,对于 Java 开发者而言,DevEco 只是“在熟悉中带有一点点陌生”。 安装 Node.js 在安装好 DevEco 之后,首次点开需要开发者设置 Node.js
    的头像 发表于 01-30 15:00 849次阅读
    鸿蒙 Harmony <b class='flag-5'>工具</b>篇

    优秀电源工程师需要哪些必备技能?

    的设计过程中,首要任务是深入了解芯片内部外设的使用方法,可以通过直接操作寄存器或者使用相关库文件配置外设的硬件驱动。工程师需要掌握数字电源常见的硬件驱动技术,包括ADC采样、信号I/O、PWM、硬件保护等,并进
    发表于 01-29 11:29

    微软弃用WMIC,Windows管理工具的变革

    近期,微软再次出手对Windows 11内置的WMIC管理工具实施了禁止,并声明未来的Windows 11最新版(预计将于今年晚些时候推出的24H2版本)将不再支持该应用。
    的头像 发表于 01-29 10:18 771次阅读

    安全密钥管理工具V.1.05用户手册

    电子发烧友网站提供《安全密钥管理工具V.1.05用户手册.pdf》资料免费下载
    发表于 01-03 10:08 0次下载
    安全密钥<b class='flag-5'>管理工具</b>V.1.05用户手册

    优秀电源工程师必备技能大揭秘!

    就带大家细数一下优秀电源工程师具备的那些技能。新手必备课程成为一名电源高手需要扎实的理论基础,涉及电路原理、语言编程和控制理论等多个学科领域。为了帮助大家更好地掌握
    的头像 发表于 12-19 08:23 1471次阅读
    优秀电源<b class='flag-5'>工程师</b>的<b class='flag-5'>必备</b>技能大揭秘!

    硬件工程师必备的音频功放电路大全

    硬件工程师必备的音频功放电路大全
    的头像 发表于 12-07 17:25 981次阅读
    硬件<b class='flag-5'>工程师</b><b class='flag-5'>必备</b>的音频功放电路大全

    Navicat和DBeaver的完美替代软件!推荐4款免费数据库管理工具

    navicat替代工具推荐的四款免费数据库管理工具:NineData、HeidiSQL、DataGrip、phpMyAdmin。无论你是初学者还是专家,无论是轻盈易用还是功能强大,总有一款适合你
    的头像 发表于 12-07 11:39 4008次阅读
    Navicat和DBeaver的完美替代软件!推荐4款免费数据库<b class='flag-5'>管理工具</b>

    经典设计经验笔记,电子工程师必备基础知识

    电子发烧友网站提供《经典设计经验笔记,电子工程师必备基础知识.pdf》资料免费下载
    发表于 11-21 11:13 12次下载
    经典设计经验笔记,电子<b class='flag-5'>工程师</b><b class='flag-5'>必备</b>基础知识

    电子工程师必备基础知识

    电子发烧友网站提供《电子工程师必备基础知识.pdf》资料免费下载
    发表于 11-20 11:29 33次下载
    电子<b class='flag-5'>工程师</b><b class='flag-5'>必备</b>基础知识

    FPGA工程师需要具备哪些技能?

    ,需要具备一系列的技能,才能胜任日益复杂的设计工作。因此,本文将从设计思路、硬件语言、EDA工具、数字信号处理、通信协议、测试验证等多个方面,探讨FPGA工程师需要具备哪些技能。 一
    发表于 11-09 11:03

    基金会旗下铜锁/Tongsuo项目官宣密钥管理工具RustyVault正式开源

    近日,开放原子开源基金会旗下铜锁/Tongsuo开源项目受邀参加2023云栖大会龙蜥操作系统专场。铜锁/Tongsuo开源项目核心成员、蚂蚁集团技术专家王祖熙发表主题演讲, 并宣布密钥管理工具
    的头像 发表于 11-05 15:15 744次阅读
    基金会旗下铜锁/Tongsuo项目官宣密钥<b class='flag-5'>管理工具</b>RustyVault正式开源

    iPolloTool批量管理工具使用说明

    电子发烧友网站提供《iPolloTool批量管理工具使用说明.pdf》资料免费下载
    发表于 11-02 18:16 1次下载

    Nginx常用配置与命令

    对于前端来说 Node.js 并不陌生, Nginx 和 Node.js 的很多理念类似, HTTP 服务器、事件驱动、异步非阻塞等,且 Nginx 的大部分功能使用 Node.js 也可以实现,但 Nginx 和
    发表于 10-18 10:04 316次阅读
    Nginx常用配置与命令