Nodejs和Node-red的关系

NPM相关知识

npm概念

  • npm:Node Package Manager,Node包管理器。
  • 是Node.js默认的,以JavaScript编写的软件包管理系统。

npm工作原理

 npm的操作原理是各个官网使用npm publish把代码提交到npm的服务器,其他人想要使用这些代码,使用npm install就会从服务器下载下来,下载完的代码会出现在 node_modules 目录里,到这里就可以随意使用了。npm的初衷:JavaScript开发人员更容易分享和重用代码。
  如果一个项目中存在package.json文件中,那么用户可以直接使用npm install命令自动安装和维护当前项目所需的所有模块,在package.json文件中,开发者可以指定每个依赖项的版本范围,这样既可以保证模块自动更新,又不会因为所需模块功能大幅变化而导致项目出现问题,开发者也可以选择将模块固定在某个版本之上。


npm的安装使用

现在的项目大都是使用npm包管理器的,所以就只举个npm安装的过程:先在本地安装完node.js
当使用 npm 安装软件包时,可以执行两种安装类型:本地安装和全局安装

默认情况下,当输入 npm install 命令时,
例如:npm install lodash
软件包会被安装到当前文件树中的 node_modules 子文件夹下。
在这种情况下,npm 还会在当前文件夹中存在的 package.json 文件的 dependencies 属性中添加 lodash 条目。
使用 -g 标志可以执行全局安装:
npm install -g lodash

在这种情况下,npm 不会将软件包安装到本地文件夹下,而是使用全局的位置。
全局的位置到底在哪里?npm root -g 命令会告知其在计算机上的确切位置。

npm的使用

  • npm -v 通过查看版本,看是否安装成功
  • npm install 使用npm命令安装模块
  • npm install -g 可直接在命令行使用
  • npm uninstall 卸载模块
  • npm list -g查看所有全局安装模块
  • npm list vue 查看某个模块版本号

npm搜索包

npm search 

npm install 包,提示安装成功,但是项目目录中没有出现node_modules的解决方案

查看npm当前安装包路径:

npm config get prefix

查看当前node-red检索的包目录

建议不要通过npm后台安装,通过nodered的web界面直接安装即可。

了解node-red、nodejs与JavaScript之间的区别与联系

node-red

Node-RED是一种基于Node.js的编程工具,用于以新颖有趣的方式将硬件设备,API和在线服务连接在一起。它提供了一个基于浏览器的编辑器,可以使用调色板中的各种节点轻松地将流连接在一起,只需单击即可将其部署到运行时。

nodejs

Node.js 是一个开源和跨平台的 JavaScript 运行时环境,Node.js 是一个底层平台。npm 以其简单的结构帮助 Node.js 生态系统蓬勃发展,现在 npm 仓库托管了超过 1,000,000 个开源包,你可以自由使用。
Node.js是一个应用,而不是一个JavaScript运行环境。它像浏览器一样,可以解析执行JavaScript脚本,但不是运行在浏览器环境下,而是运行在操作系统环境下。或者说它和浏览器是一个并列的性质,都是操作系统下的一个应用。


JavaScript

JavaScript是一门编程语言(脚本语言),而Node.js是一个平台,可以简单理解为它是JavaScript的一种执行环境。node.js是一个javascript的运行平台。
npm是JavaScript运行时,环境Node.js的默认包管理器。
JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
 

  • JavaScript 是脚本语言。
  • JavaScript 是一种轻量级的编程语言。
  • JavaScript 是可插入 HTML 页面的编程代码。
  • JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。

JavaScript的解释器?

JavaScript解释器又名js引擎。

JavaScript解析执行过程

在整体上,JavaScript的解析执行过程分为两个步骤:

1)编译

2)运行

其中,编译是在解释器中进行,将代码编译成可执行码。运行是在JavaScript引擎中进行,执行可执行码。过程如下:

编译过程

编译过程不必多说,我们只要清楚这个过程会将字符串代码编译为可执行码。

执行过程

重点是运行过程,运行又由两个过程组成

1)预解析

2)执行

预解析

预解析的工作是

1)收集变量

2)分号补全

变量收集

重点注意收集变量这一功能,又名为变量提升,收集的变量有以下三种:

  1. var声明的变量,初始值为undefined
  2. arguments参数,值为传入的实参
  3. function声明定义

若是变量名有重复的话,按照优先级来确定:

nodejs和javascript的联系、区别

虽然不能说它们一点关系也没有,但它们的确关系不大:

第一,JavaScript是一门编程语言(脚本语言),而Node.js是一个平台,可以简单理解为它是JavaScript的一种执行环境。
第二,JavaScript以前是在浏览器里执行的,需要浏览器里的JavaScript引擎,Firefox有叫做Spidermonkey的引擎,Safari有JavaScriptCore的引擎,Chrome有V8的引擎,现在有人把Chrome有V8的引擎的引擎拿出来做了包装,加入了 内置基本模块(大多用JavaScript编写),就构成了Node.js。
第三,Node.js可以说是JavaScrip的一种独立于浏览器的运行环境。

JavaScript是动态语言还是静态语言

javascript是动态的,它是一种动态类型、弱类型、基于原型的语言。在JavaScript中,当对一个变量赋值时,是不需要考虑它的类型;且它能够动态修改对象的属性,没有办法在编译的时候知道变量的类型,只有在运行的时候才能确定。

静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。

动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。

Java是动态语言吗?

Java是静态语言,并且是强类型语言。

Java的编译器

JAVA编译器(javac.exe)的作用是将java源程序编译成中间代码字节码文件,是最基本的开发工具。

编译时首先读入java源程序(即在MS-DOS命令行下键入javac HelloWorld.java等文件名参数和其他选项参数),然后进行语法检查,如果出现问题就终止编译。语法检查通过后,生成中间代码即字节码,字节码文件名和源文件名相同,扩展名为.class。

字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的Java解释器来解释执行,因此Java是一种在编译基础上进行解释运行的语言。

Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此Java程序不能直接运行在现有的操作系统平台上,它必须运行在被成为Java虚拟机的软件平台之上。

Java语言这种“一次编写,到处运行”的方式,有效地解决了大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。

JAVA解释器

Java解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此Java程序不能直接运行在现有的操作系统平台上,它必须运行在被成为Java虚拟机的软件平台之上。

Java解释器的解释执行方式相对较慢,因为在每次运行时都需要将字节码转换成机器指令,且无法进行优化。因此,Java解释器在性能上通常比不上其他执行方式,例如编译执行方式。然而,Java解释器在一些特定的场景下仍然有其优点,例如在开发、调试和测试阶段,它可以提供更快的代码修改和调试的能力,同时也能够在跨平台的环境中实现Java程序的可移植性。

动态语言需要编译吗?

动态语言也称为脚本语言,是介于标签语言(如HTML,XSLT,VML)和静态语言(如C++、C#、Java,也称编译语言)之间的语言。JavaScript、PHP、Perl、Ruby等都是动态语言。动态语言无需编译,它由解释器动态解释执行,一般来说,动态语言拥有比静态语言更大的灵活性和表达能力。动态语言优势在于灵活,易于开发和学习,劣势在于性能较低。在高性能服务器和并行处理的实现方案里,动态语言的优势掩盖自身的不足。一般来说,完成同样逻辑功能的程序,使用Ruby或Python之类的动态语言所需的代码量往往只有使用Java实现版本的1/10,相比C/C++差距更大。
 

安装node-red

centos通过源文件的方式安装node-red_centos安装node-CSDN博客


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李小白20200202

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值