Skip to content

Node概述 ​

nodejs中文网

Node是一个JS运行环境,比浏览器更加强大,浏览器为了安全性考虑,限制了很多权限,例如文件读取的权限,node给我们开放了很多权限,理论上来说,java可以干的事情,nodejs都是可以干的.

JavaScript是指在浏览器运行的JS,nodeJs是在node环境下运行的js,这是约定俗称的一个东西,我们平时可以这么认为,当然我们也可以认为js可以运行在浏览器和node两个环境,都是可以的.

nodejs拥有比浏览器更多的权限,浏览器中的JS能用的是ECMAscript和WEBAPI,其中ECMAscript和运行环境无关,用node和浏览器都是可以写的,但如果只有ECMAscript那么功能未免太弱了一点,所以浏览器就给我们提供了一些功能,浏览器内部就给我们封装了一些方法,例如浏览器中的window对象就是浏览器给我们封装好的,浏览器提供的这些API就是WEBAPI,通过WEBAPI就可以进行DOM操作和BOM操作,当然包括Ajax在内,这些事属于浏览器给我们提供的API.

浏览器内的JS也受到了很多限制,例如跨域问题,文件读写,这些都是浏览器搞出来的一些限制,浏览器为了保证数据安全,弄了个同源策略,才有了跨域问题,浏览器为了防止用户隐私泄露,禁止了文件读写权限, 只允许一些有限的文件读写,例如文件类型的表单项,而nodejs的能力远远超过浏览器,浏览器给的WEBAPI权限过低,而nodejs里的nodeApi的权限相当高,提供了几乎所有能做的事情.

nodejs是单线程的,不存在线程之间的竞争,不会存在线程竞争,并且单线程语言的IO处理速度非常快,nodejs虽然是单线程的,但经过了优化,可以充分利用多核CPU.

nodejs可以做的事有很多,可以用来开发桌面应用程序,也可以用来开发服务器应用程序,我们主要学习开发服务器应用程序.

我们可以用node编写一个完整的服务器程序,让浏览器和数据库进行连接,但我们更常见的是用node作为一个中间层,node将请求发送到后端服务器,这里node只负责前后端的一个通信,不负责庞大的业务逻辑,当然这种模式下node也可以去连接一个数据库,这个数据库可以存储一些简单的信息,比如一些静态资源,缓存等等.

以笔记为镜,可以知得失