NODE
Node.js® 是基于
不需要处理兼容性问题 2009.05
1.1Node是一个JS的运行环境
js的运行方式:
1.客户端:把js文件引入,然后打开浏览器,控制台查看
2.node服务端:
1.cmd窗口中cd命令切换到需要打开的文件夹下,运行 node 文件名
2.直接在文件夹下 shift+右键
3.vscode编辑器中直接在当前文件的终端中打开,submint编辑器是需要安装terminal插件
1.2对比浏览器中的JS
1.2.1 浏览器中的JS
web api 提供了操作浏览器窗口和页面的功能。例如:BOM操作,DOM操作,AJAX
但是这些功能有局限性。例如:跨域问题,文件读写

① 浏览器提供了有限的能力,JS只能使用浏览器提供的功能做有限的操作
② Node提供了完整的控制计算机的能力,NodeJS几乎可以通过Node提供的接口,实现对整个操作系统的控制
1.3官方文档
Node官网:https://nodejs.org/en/
Node中文官网(民间网):http://nodejs.cn
Node服务器要完成请求的处理、响应、和数据库交互、各种业务逻辑
这种结构通常应用在微型的站点上。例如:个人博客、公司官网
不做任何与业务逻辑有关的事情。绝大部分时候,只是简单的转发请求。但可能会有一些额外的功能
1.简单的信息记录:请求日志、用户偏好、广告信息
2.静态资源托管
3.缓存
后端服务器
处理大型的业务逻辑
1. JS开发省时,省力
2. 因为nodeJS是单线程,没有线程切换的损耗,没有线程之间的竞争。
3. IO处理非常快(输入输出)
4. node不适合处理复杂运算,例如java可以开多线程进行并行运算
其他服务端语言(例如java,.net)能做的事情,node全部都能做。语言没有好坏之分,只有场景的适合。
node开发者就是为了寻找快速的IO处理的语言,所以选择了JavaScript
4.全局对象
global
跟浏览器环境中的this相同,表示顶级对象
注意:浏览器的全局环境this表示window,node中this不是表示global
1.setTimeout,setInterval
用法跟浏览器环境完全相同。
注意:浏览器返回的是ID,node环境中返回的是对象
2.setImmediate
类似于 setTimeout 0
3.console
浏览器在控制台输出
node在命令行输出
4.__dirname*
获取当前模块所在的目录
(注意:并非global属性)
5.__filename*
获取当前模块的文件路径
(注意:并非global属性)
6.Buffer
类型化数组
继承自 UInt8Array
计算机中存储的基本单位:字节
使用时、输出时可能需要用十六进制表示





浙公网安备 33010602011771号