nodejs 基础使用

安装

目前是 14.1.0 版本,node 进化还是很飞速的。 下载地址open in new window

下载稳定版,然后一路 next 安装好。
新版 nodejs 自动配置了环境变量,所以安装好后,我们的电脑全局任何地方都可以用 nodejs 了,检测是否安装成功

node --version
1

还可以在 com 里直接使用 nodejs 去运行 js 代码

node
1+1
1
2

还可以直接运行任意的 js 文件

  1. 创建一个 js 文件,随便写入 js 语句,这里用console.log(666)
  2. 打开 cmd 窗口,输入node demo.js就可以看到运行结果了

nodejs 的特性

单线程

Node.js 不为每个客户连接创建一个新的线程,而仅仅使用一个线程。当有用户连接了,就触发一个内部事件,通过非阻塞 I/O、事件驱动机制,让 Node.js 程序宏观上也是并行的。
优点:不会死锁、不用像多线程那样处处在意同步问题、没有线程切换带来的性能上的开销。
缺点:多核 CPU 需单独开子线程、错误会使得整个应用退出、大量计算会占用 CPU 从而无法调用异步 I/O。
举例:
当有用户连接了,就触发一个内部事件,通过非阻塞 I/O、事件驱动机制,让 Node.js 程序宏观上也是并行的。使用 Node.js,一个 8GB 内存的服务器,可以同时处理超过 4 万用户的连接。
另外,单线程的带来的好处,还有操作系统完全不再有线程创建、销毁的时间开销。

非阻塞异步 I/O

Node.js 中采用了非阻塞型 I/O 机制,因此在执行了访问文件的代码之后,Nodejs 不会阻塞在那里等待文件获取完成,而是把这件事交给底层操作系统,使用回调函数的方式来处理异步的 IO,立即转而执行其它的代码。

事件驱动

也称事件轮询,Nodejs 接收到的事件会放到事件队列中,而不是立即执行它,当 NodeJS 当前代码执行完后他会检查事件队列中是否有事件,如果有,他会取出来依次执行。

nodejs 服务端和浏览器差异

没有 window 对象

nodejs 运行在服务器端,基于 v8 引擎运行,顶级对象是 global;

没有 alert 等弹窗

输出语句是 console.log

适用范围

中间层服务,比如代理跨域,处理小型事务,读写文件,开个本地测试服务等,不建议用在大型产品开发中。
写个聊天室什么的还是很方便的。
所以本 nodejs 主要是从网络请求和文件系统说起,后面有空会把 socket 写聊天室搬上来。
在实际开发中,经常是前后端一起开发,那么作为快速开发的前端人员经常会赶在后端前面完成大部分界面开发【后端涉及到的东西多,还要保证一定量的容错】,那么前端傻了吧唧的死等后端同学的测试接口是不明智的,所以可以用 node 自己起一个测试服务。

Last Updated:
Contributors: websong