Node简介和安装

什么是node

  • Javascript可以在浏览器运行, node可以让javascript在浏览器之外运行
  • 可以用来做本地运行的软件/网络服务器/游戏等等
1
2
% node
zsh: command not found: node

本地还没有安装node, 下面开始安装

安装node

  • 登陆node官网下载
  • 选择左边稳定版本
    下载界面选择node版本
  • 安装pkg⬇️
    continue- continue- agree- continue- install
    安装界面
  • 安装完成✅
    终端terminal里面输入node可以看到版本号/node -v
  • ctrl+c两次/ctrl+d/.exit退出
1
2
3
4
5
6
7
8
9
10
% node
Welcome to Node.js v18.18.0.
Type ".help" for more information.
>
>
>
>
>
(To exit, press Ctrl+C again or Ctrl+D or type .exit)
>

Node REPL

  • 和浏览器中的console界面类似
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
% node
Welcome to Node.js v18.18.0.
Type ".help" for more information.
> .help
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the REPL
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file

Press Ctrl+C to abort current expression, Ctrl+D to exit the REPL
> 1 + 2
3
> "hello" + "world"
'helloworld'

global scope可以输入global查看
使用global下面的function

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> setTimeout(() => {console.log("Heloo")}, 3000)
Timeout {
_idleTimeout: 3000,
_idlePrev: [TimersList],
_idleNext: [TimersList],
_idleStart: 398982,
_onTimeout: [Function (anonymous)],
_timerArgs: undefined,
_repeat: null,
_destroyed: false,
[Symbol(refed)]: true,
[Symbol(kHasPrimitive)]: false,
[Symbol(asyncId)]: 365,
[Symbol(triggerId)]: 6
}
  • 和客户端JS区别
    • node不是在浏览器上运行, 不能对浏览器中的window/document/DOM API进行操作
    • 可以和操作系统/文件系统进行交互

如何运行一个脚本

  • terminal新建文件
    touch firstTest.js
  • vs code编辑此文件
1
2
3
for(let i = 0; i < 10; i++) {
console.log("hello from first script!!")
}
  • terminal通过命令行node filename运行
1
2
3
4
5
6
7
8
9
10
11
12
13
% touch firstTest.js
% node firstTest.js
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
hello from first script!!
%

命令行传入参数

  • vs code 编辑脚本文件
    通过process.argv.slice(2)获得参数的list
    其中argv的第一个’/usr/local/bin/node’是运行路径, 第二个’/Users/code/args.js’是运行的脚本文件所在路径
1
2
3
4
5
console.log("hello from args", process.argv);
const personList = process.argv.slice(2);
for (p of personList) {
console.log(`hello, ${p}`);
}
  • terminal运行时node filename arg1 arg2 aeg3传入参数
1
2
3
4
5
6
7
8
9
10
11
% node args.js person1 person2 person3
hello from args [
'/usr/local/bin/node',
'/Users/code/args.js',
'person1',
'person2',
'person3'
]
hello, person1
hello, person2
hello, person3

Node简介和安装
https://hexwhat.top/2023/09/21/Node-intro-and-installation/
作者
Wynn
发布于
2023年9月21日
许可协议