概念
- 简单的说 Node.js 就是运行在服务端的 JavaScript。
- Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
- Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好,即轻量又高效。
- node.js没有web容器
- 通俗来讲,node.js是用来开发服务器、做数据API、路由等的,和前端主要区别在于:前端主要负责页面的效果及交互。
- 三大环环相扣的特点:单线程 — 非阻塞(异步)I/O — 事件驱动
NodeJS是用来干什么的?
- 它是一个运行环境,平台, 它使得 js 可以运行与web服务器端。
- 相当于是PHP、java之类的语言,用来开发轻量级的后台系统。
- 具有单线程, 基于事件模型,非阻塞IO. 高并发量的访问,节省内存等特点。
- 可以去部署一些高性能服务,也就是可以去快速搭建一个自己的服务器。
与其他后端语言不同之处:
- 没有自己的语法,使用V8引擎,使用的是js。V8引擎解析js效率极高,node如同站在巨人的肩膀上,把V8的一些功能移植到了服务器上。
- 没有web容器,就是安装之后没有一个根目录。
怎么执行js文件?
-
注意:node是基于 v8 引擎,可以在终端cmd中输入node后,直接编写js代码
-
在终端如何运行 js 文件呢:
1.找到要执行js文件对应的目录
2.在终端输入: node ***.js -
还可以在文件夹中,直接输入 cmd ,打开当前文件对应的终端
NodeJS中五大核心的模块
-
http 开启一个Web服务,给浏览器提供服务
-
url 给浏览器发送请求用,还可以传递参数(GET)
-
querystring 处理浏览器通过GET/POST发送过来的参数
-
path 查找文件的路径
-
fs 在服务器端读取文件用的
node适应项目:
-
node适合做高并发的互联网应用
Node.js采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。
Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。 -
擅长任务调度,不善于计算
因为nodejs是单线程,cpu在计算的过程中就不能分身,所以在计算量极大的项目中,不可使用nodejs -
实时性应用,比如多人在线协作工具,聊天工具等;
-
以 I/O 为主的高并发应用,比如为客户端提供api,操作数据库等;
-
流式应用,比如客户端经常上传等;
-
前后端分离。
注意:客户端广泛使用长连接,虽然并发数较高,但其中大部分是空闲连接。
node相关工具:
- 下载:https://www.mongodb.org/dl/win32
- 对form表单提交数据的处理:https://github.com/felixge/node-formidable
- 随机数的生成uuid:https://github.com/kelektiv/node-uuid
- 数据渲染模板引擎ejs:https://ejs.bootcss.com/
- 后端框架之一:http://www.expressjs.com.cn/
- 相关数据库存储MongoDB:https://docs.mongodb.com/manual/crud/
- 对数据库的处理mongoose:https://mongoosejs.com/docs/
- socket对话机制:https://socket.io/
- nvm 管理node版本工具安装路径: https://segmentfault.com/a/1190000007612011#item-1-2