Node.js结构比较

141 阅读5分钟

Node.js结构比较

Node.js是一种基于JavaScript的计算机语言。在学习一门新的语言时,寻找其他计算机语言之间的共同点会很有帮助。本文将帮助读者了解与安装模块、定义变量和可视化有关的结构差异。

Node.js的结构比较

在本教程中,我们将对Node.js与C/C++进行比较。在本教程中,将安装模块、定义变量和可视化。在各种情况下,应用这些概念可能是有益的。

前提条件

  • Windows设备。
  • 以前有安装模块的知识。
  • 有一些解释图表和类似可视化的知识。
  • 以前有数学和统计学的知识。
  • 的安装。
    • [Kali Linux]。
    • [Node.js]应用程序。
  • [Plotly]账户。
  • 一些编码知识或经验。

一旦大部分先决条件得到满足,我们就可以开始了。

Node.js

Node.js是以一种独特的结构编写的。需要考虑的一个特点是创建或添加模块到Node.js的步骤。由于每种编码语言都包括其顺序程序,Node.js在定义变量时也涉及灵活的选择。我们可以在开源网站上找到模块。

在Node.js中,文件夹和JavaScript文件被称为容纳模块。node_module 文件夹内的模块可以在Node.js应用程序中使用。安装Node.js模块的一种方法如下所示。另外,可以用i 代替install

npm install plotly

分支的路径目录将类似于下面的图片。

Directory

屏幕截图

记住要使用npm rebuild 命令。输入这个命令后,一个模块就会被安装。如果没有输入这个命令,安装就不完整,不能包含在Node.js脚本中。

Node.js的结构是独一无二的,可以正确定义一个变量。当使用global 函数时,该函数可以选择性地包含在其他模块中。例如,如果没有global 函数来定义一个变量,该变量将被命名为undefined

下面是一个例子。

var name = 'section.io';

输出。

undefined

当在变量名称前加上global ,该值就变成了定义。定义的global 变量可以应用于许多数据类型,并与各种Node.js模块一起使用。

下面是几个例子。

global.name = 'section.io';
global.number = [0,-10,3.14,-3.14];
global.alphanum = [name, number];

输出。

'section.io'
[ 0, -10, 3.14, -3.14 ]
[ 'section.io', [ 0, -10, 3.14, -3.14 ] ]

Defining Variables

屏幕截图

在一个单独的变量内处理不同的数据类型可能需要一个特定的结构。在这种情况下,方括号包围了数值。

Node.js中的可视化内容是用Plotly生成的。要用Plotly做图,需要一个账户。定义变量的概念也适用于下面的Node.js脚本。将[enterusername]和[enterkey]替换为Plotly账户注册时收到的登录信息。

需要注意的一点是,生成随机数的时候,可以选择种子。本教程中的种子一词是指重复相同的脚本并收到相同的结果。如果脚本没有设置seed ,那么每次从脚本中生成的数字都会不同。


global.plotly = require('plotly')("[enterusername]", "[enterkey]");
global.i = [];
global.y = [];
global.x = [];
for (i = 0; i < 50; i ++) {
	y[i] = Math.random();
	x[i] = Math.random() + 1;
}
global.trace1 = {
  y: y,
  type: "box"
};
global.trace2 = {
  x: x,
  type: "box"
};
global.data = [trace1, trace2];
global.graphOptions = {filename: "basic-box-plot", fileopt: "overwrite"};
plotly.plot(data, graphOptions, function (err, msg) {
    console.log(msg);
});

输出。

{
  streamstatus: undefined,
  url: 'https://chart-studio.plotly.com/~pkalynan/0',
  message: "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://chart-studio.plotly.com/~pkalynan/0 or inside your Plotly account where it is named 'basic-box-plot'",
  warning: '',
  filename: 'basic-box-plot',
  error: ''
}

下面的图片是交互式图形的一个冻结部分。
Graph

屏幕截图

一个例子是将任何给定的Node.js脚本转换为其他编程语言,如Python、R和JSON。另一个功能包括用鼠标移动技术来显示标签。

来自随机数生成器的视觉的一般概述考虑了箱形图的规模和物理定位。垂直箱形图包括数值为1以下的数据点。

该图包括大多数衡量中心趋势的变量,尽管平均值或平均数仍然不可用。定位在右边的第二个图是水平的。两张图都可以显示中位数。

C

在本教程的这一部分,讨论了关于Matplotlib-cpp安装、定义变量以及将这些程序应用于可视化的背后程序过程的提示。下面是一个经常使用的安装C模块的程序。

Matplotlib-cpp可以进行相应的安装。在输入安装命令后,可以接受或拒绝安装其他所需依赖模块的请求。在这一步,输入y ,用下面提供的命令完成安装。

apt-get install python-matplotlib python-numpy python2.7-dev

接下来,在C/C++环境中定义变量。命令行中的文本编辑器可以帮助创建一个C文件。例如,nano 是一个参与创建C文件的内置文本编辑器。

nano test.c

C脚本如下所示。

#include <stdio.h>

int main(){
  static int n = 500000.00;
  printf("Numerical variable is %d.", n);
  return 0;
};

在运行C脚本之前,必须先对上面的脚本进行编译。当不在ROOT 模式时,在每个命令的开头输入sudo

需要注意的其他情况是:gcc 帮助创建C文件,而-o 创建输出文件的名称。我们用第二条命令打开输出文件,上面有路径目录符号和文件名。

gcc test.c -o test
./test

输出。

Numerical variable is 500000.  

可视化以不同的形式显示数据。对图形来说,Matplotlib-cpp可以显示很多类型的图形。然而,简单性是关键。

正如Matplotlib-cpp文档中所说,安装Python是创建图形的必要条件。首先,用nano 创建一个C++文件。下面的脚本被保存为flip.cpp。

#include <cmath>
#include "matplotlibcpp.h"

using namespace std;
namespace plt = matplotlibcpp;

int main()
{
    int n = 500000;
    vector<double> x(n),y(n);
    for(int i=0; i<n; ++i) {
        double t = 2*M_PI*i/n;
        x.at(i) = 16*sin(t)*sin(t)*sin(t);
        y.at(i) = -(13*cos(t) - 5*cos(2*t)) - (-(2*cos(3*t) - cos(4*t)));
    }

    plt::title("Soundwave Curves");
    plt::plot(x, y, "y-", x, [](double d) { return 12.5+abs(sin(d)); }, "bo");

    plt::show();
}

输入下面的命令来编译上面写的cpp文件。g++ 是用来创建c++文件的。该命令还必须包含 Python 库目录。要运行新创建的文件,在g++ 下方输入第二条命令。

g++ flip.cpp -I/usr/include/python3.9 -lpython3.9 -o section.io
./section.io

如果kex ,图像应该出现类似于下面的图片。

Soundwave Curves on Matplotlib-cpp

屏幕截图

概括地说,上面显示的图形是多种形式的正弦波和余弦波的混合物。这些三角函数也被用来测量声音。

该图形成了一个旋转的几何形状,象征着一颗心。颜色可以相应改变。

结论

如前所述,Node.js和C/C++提供了若干功能。根据喜好和目的,任何一种计算机语言都可以完成任务。决定使用哪种计算机语言取决于个案的情况。

经验之谈

  • 在Node.js中,定义全局变量是以global. 开始的,后面是一个单一语句中的变量名称。
  • 用Node.js生成的Plotly图形被发送到一个单独的交互式浏览器窗口。互动功能包括脚本转换和显示标签。
  • 在C/C++中,在运行文件之前需要对文件进行编译。
  • Matplotlib-cpp的图形是用kex