Node.js 通用计算1--环境搭建

一、为什么要写这个

     笔者读博期间曾深入参与到科学计算、并行计算的应用中,使用的语言从C、C++过渡到Python,使用Python后笔者对脚本语言的崇拜之情如涛涛江水,首先是环境搭建异常简单,以前在Linux主机上进行C、C++开发,库文件、make、gcc一个都不能少,环境搭建占据了大量宝贵时间,使用Python后,环境搭建零成本,节省了大量的时间;其次是调试非常方便,微小的改动不需要从头重新编译;三是学习成本低,以前用C开发除了语言本身,还需要学makefile、shell 费时费力,使用脚本语言只需要将精力放在业务逻辑上,学习成本极低我承认这句话有问题,随着了解的深入,我发现还是需要捣鼓这些乱七八糟的东西)。然而无论C还是Python都一个致命的缺陷,就是数据可视化显示的问题,C除了Qt框架几乎没有跨平台的方式,Python虽然有matplot但速度功能都稍显一般,更要命的是他们对客户端的部署环境都有着严苛的要求,需要安装复杂的运行环境,对于一些没有安装运行环境的电脑,无法随时查看服务器端产生的数据。近年来Web应用已被广泛采纳,只要有浏览器就能运行的理念给科学计算中数据检视工作,提供了新的思路。

     目前主流科学计算语言能够实现这一想法的只有Python语言,通过Python程序产生数据,然后使用Django、Flask等Web框架将数据传至前端从而实现Web访问。然而不幸的是Python解释器本质是单进程程序,而网络访问又是一个IO密集型操作,很容易造成服务器性能拥塞。下面是一些语言执行速度对比。

可以看出Python的执行效率处于垫底位置。前面也说了脚本语言有脚本语言的优势,有没有一种既是脚本语言又有相对快的速度还能和Web框架相统一的语言呢,答案有:这就是

Node.js

Node.js是一个 是一个免费、开源、跨平台的 JavaScript 运行时环境, 它让开发人员能够创建服务器 Web 应用、命令行工具和脚本。其设计的目的是为了在任何地方运行 JavaScript

查了很多Nodejs的教程,其面向对象大多是具备较深的Javascript基础知识的IT从业人员,这其实也很正常,一则本来Javascript就是网页制作的三大语言之一,二则Nodejs其设计最重要的应用也就是统一前后端语言,让熟悉js的前端开发者可以参与到后端业务之中。

但是,对于很多不从事前端业务的人来说,由于本身对Javascrip并不很熟悉,目前的教程显得不够基础也不够全面,更多的是偏向网络层面的应用,对于网络应用之外的教程很碎片化,网上收集效率比较低,想要系统全面的学习费时费力。

当然受制于脚本语言的特点,计算密集型指令我们依然建议使用C/C++来执行,这就要使用一些额外的技术,实现Js中调用C/C++函数。

本文的目的就是和大家一起,从零开始共同研究Node.js在科学计算上的应用。

PS:因为本人很懒加上时间紧迫,很多网络上现有的这里便不再复述!!后面有时间再弄

二、Windows下Node.js环境搭建

1.下载安装包或者预编译二进制文件

Node.js — 下载 Node.js®

2.记得添加 环境变量!

3.记得安装vscode扩展:

三、Linux下Node.js环境搭建

1.下载预编译二进制文件

Node.js — 下载 Node.js®

下载下来大概是这样一个文件:

node-v22.11.0-linux-x64.tar.xz

解压:

 fan@fan-virtual-machine:~/Downloads$ tar -xJvf node-v22.11.0-linux-x64.tar.xz

 进入解压后文件夹

fan@fan-virtual-machine:~/apps/node-v22.11.0-linux-x64$ ls -la
total 556
drwxr-xr-x 6 fan fan   4096 10月 29 13:49 .
drwxr-xr-x 3 fan fan   4096 12月 17 20:42 ..
drwxr-xr-x 2 fan fan   4096 10月 29 13:49 bin
-rw-r--r-- 1 fan fan 362490 10月 29 13:49 CHANGELOG.md
drwxr-xr-x 3 fan fan   4096 10月 29 13:49 include
drwxr-xr-x 3 fan fan   4096 10月 29 13:49 lib
-rw-r--r-- 1 fan fan 139053 10月 29 13:49 LICENSE
-rw-r--r-- 1 fan fan  40117 10月 29 13:49 README.md
drwxr-xr-x 4 fan fan   4096 10月 29 13:49 share

fan@fan-virtual-machine:~/apps/node-v22.11.0-linux-x64/bin$ ls -la
total 114648
drwxr-xr-x 2 fan fan      4096 10月 29 13:49 .
drwxr-xr-x 6 fan fan      4096 10月 29 13:49 ..
lrwxrwxrwx 1 fan fan        45 10月 29 13:49 corepack -> ../lib/node_modules/corepack/dist/corepack.js
-rwxr-xr-x 1 fan fan 117383456 10月 29 13:49 node
lrwxrwxrwx 1 fan fan        38 10月 29 13:49 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx 1 fan fan        38 10月 29 13:49 npx -> ../lib/node_modules/npm/bin/npx-cli.js

 可以看到 node  npm  npx 都已经存在并且是可执行文件了。

下面只要设置好环境变量让系统能够找到这些文件就行了。

2.设置环境变量

fan@fan-virtual-machine:~$ sudo vim /etc/profile.d/bash_completion.sh 

 在文件最后把Node路径导出到PATH变量中‘

export PATH=$PATH:/home/fan/apps/node-v22.11.0-linux-x64/bin

重启一下服务器后,打开终端,输入

node -v

如果能显示版本号则说明环境变量设置没问题。

3.设置ssh远程证书访问

略,网上找答案

4.设置vscode远程访问

具体略,记得安装这几个扩展

5.踩坑分享

最后跟大家分享自己踩得一个坑,本人在Ubuntu环境下一开始使用 以下方法安装

sudo apt-get  install  nodejs npm

 然后用npm怎么都不成功,后来才知道原来是 apt 源里面的node 版本和npm版本不匹配导致,目前所有node官方安装包都包含npm,因此没有必要单独从源安装,只需从官方下载相应二进制文件解压即可。

四、其他一些设置

1.包管理器npm

注意设置本地源: 

npm config set registry https://registry.npmmirror.com/

关闭代理:

npm config delete proxy

npm config delete https-proxy

2.Node.js 内置模块

  1. fs模块:提供了文件系统相关的功能,可以进行文件的读写、复制、删除等操作。
  2. path模块:用于处理文件路径的相关操作,例如获取文件名、扩展名,拼接路径等。
  3. http模块:用于创建HTTP服务器和客户端,可以处理HTTP请求、响应以及路由等。
  4. events模块:用于处理事件的模块,可以实现事件的注册、触发和监听等。
  5. os模块:提供了与操作系统相关的功能,可以获取操作系统的信息,如CPU架构、内存等。
  6. querystring模块:用于解析和处理URL查询字符串。
  7. util模块:提供了一些常用的工具函数,例如格式化字符串、对象继承等。
  8. crypto模块:提供了一系列加密和解密的功能,包括哈希算法、对称加密、非对称加密等。
  9. child_process模块:用于创建子进程,可以执行外部命令和脚本。

   常用模块用法:前端之node.js内置模块_node内置模块-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值