Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境
ps : 可以看成是由 C++ | JS | C 编写的
也就是说Node.js基于V8引擎来执行JavaScript的代码,但是不仅仅只有V8引擎
Node.js的架构图 :
ps : 直接下一步下一步下一步,即可安装完成 以往的版本 => 以往的版本 | Node.js
终端 | 命令行 : node --version
终端 | 命令行 : npm --version ps : 安装 node 时会自动安装 npm
终端 | 命令行 : which node | npm
sudo npm cache clean -f
sudo npm install -g n
ps : 建议关了终端 | 命令行,重新打开
n --version
n ls
npm view node versions
安装 16.17.0 版本 => sudo n 16.17.0
安装最新的lts版本 => sudo n lts
安装最新的版本 => sudo n latest
sudo n => 上下键 + 回车 = 切换
ps : 切换后,使用 npm --version 查看当前使用的是什么版本
最好使用 sudo n 来切换,如果直接 n 切换,node版本会变,但是npm版本不变!!
sudo n rm ( 版本号 )
sudo npm uninstall n -g
在nvm安装路径下打开cmd或者git bash => 在其他路径下打开会报错的
如果有nvm: commond not found,重新启动电脑
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
重启后 => 理论上应该为全局配置,可以随地使用了
ps : 若报status145乱码,关掉cmd,重新以管理员身份运行cmd,执行nvm use XXX 即可
查看已安装的nodejs版本
nvm list
启用node.js版本管理
nvm on
禁用node.js版本管理(不卸载任何东西)
nvm off安装某一version的node.js
nvm install=> nvm install 14.16.1 | latest 最新版本 使用某一version的nodejs
nvm use=> nvm use 14.16.1 卸载指定版本的nodejs
nvm uninstall=> nvm use 14.16.1
目前有两种方式可以执行 :
正常情况下执行一个node程序,直接跟上对应的文件即可
node index.js
node index.js env=development star
获取参数其实是在process的内置对象中的argv属性
REPL是Read-Eval-Print Loop的简称,翻译为“读取-求值-输出”循环
REPL是一个简单的、交互式的编程环境
1 - 终端 | 命令行 输入 : node => 开启环境
2 - 两次 ctrl + c => 关闭环境
获取当前文件所在的路径
ps : 不包括后面的文件名
获取当前文件所在的路径和文件名称
ps : 包括后面的文件名称
在浏览器中,全局变量都是在window上的,比如有document、setInterval、setTimeout、alert、console等等
在Node中,global是一个全局对象,比如process、console、setTimeout等都有被放到global中
在新的标准中还有一个globalThis,是指向全局对象的
浏览器中 globalThis === window
node中 globalThis === global
process提供了Node进程中相关的信息
path模块用于对路径和文件进行处理,提供了很多好用的方法
因为在Mac OS、Linux和window上的路径时不一样的 :
那么如果在window上使用 \ 来作为分隔符开发了一个应用程序,要部署到Linux上面应该怎么办呢 :
可移植操作系统接口(英语:Portable Operating System Interface,缩写为POSIX):
extname : 获取文件后缀名
- // 导入内置模块path
- const path = require('path');
-
- // 1. 测试的文件路径
- const filePath = 'C://abc/coder/cba/text.img';
-
- // 2. 获取文件后缀名
- console.log(path.extname(filePath)); // .img
basename : 获取文件完整名称
- // 导入内置模块path
- const path = require('path');
-
- // 1. 测试的文件路径
- const filePath = 'C://abc/coder/cba/text.img';
-
- // 2. 获取文件名,完整
- console.log(path.basename(filePath)); // text.img
dirname : 获取文件父文件夹路径
- // 导入内置模块path
- const path = require('path');
-
- // 1. 测试的文件路径
- const filePath = 'C://abc/coder/cba/text.img';
-
- // 2. 获取文件的父文件夹路径
- console.log(path.dirname(filePath)); // C://abc/coder/cba
join : 路径的拼接
- // 导入内置模块path
- const path = require('path');
-
- // 1. 测试的文件路径
- const filePath1 = '/abc/coder';
- const filePath2 = '../sss/a.text';
-
- // 2. 拼接路径,从右往左开始解析
- console.log(path.join(filePath1, filePath2)); // \abc\sss\a.text
resolve : 拼接绝对路径
ps : 将多个路径拼接一起, 最终一定返回一个绝对路径: path.resolve
- // 导入内置模块path
- const path = require('path');
-
- // 1. '/abc.txt 这个就是绝对路径
- // console.log(path.resolve('./abc/cba', '../why/kobe', '/abc.txt')); // C:\abc.txt
-
- // 2. 正常拼接
- console.log(path.resolve('./abc/cba', './star/kobe', './abc.txt')); // C:\Users\coder\Desktop\代码\abc\cba\star\kobe\abc.txt
-
- // 3. 注意相对路径
- console.log(path.resolve('./abc/cba', '../star/kobe', './abc.txt')); // C:\Users\coder\Desktop\代码\abc\star\kobe\abc.txt