什么是node.js
node.js是一个基于Chrome V8引擎的JavaScript运行环境
node.js使用事件驱动,非阻塞IO的模型,使其轻量又高效
node.js适用于:1.RESTful API 2.统一web应用的UI层 3.大量Ajax请求的应用
node.js特点:
1.他是一个JavaScript运行环境
2.依赖于Chrome V8引擎进行代码解释
3.事件驱动
4.非阻塞I/O
5.轻量,可伸缩
6.单进程,单线程
node.js优点:
1.高并发
2.适合I/O密集型应用
缺点:
1.不适合CPU密集型应用
2.只支持单核CPU,不能充分利用CPU
3.可靠性低,一旦代码某个环节崩溃,整个系统都会崩溃
原因:单进程,单线程
解决办法:1.Nnigx反向代理,负载均衡,开多个进程,绑定多个端口
2.开多个进程同时监听多个端口,使用cluster模块
4.开源组件库质量参差不齐,更新快,向下不兼容
5.Debug不方便,错误没有stack trace
node.js与JavaScript区别?
node.js
node.js主模块:整个项目的启动模块,其他子模块都归主模块调用,通常命名为mian.js 或index.js 以及app.js
模块就是一个文件,所有用户编写的代码都放在文件中
模块组成:exports 暴露对象,可以将模块中的数据暴露给引用的地方
require 引入模块的函数,用于在一个模块中引入另外一个模块
module 模块对象,包含了当前模块的所有信息
_filename 当前模块的文件名
_dirname 当前模块所在的路径
通过arguments可以查看函数
中间件:是一个函数,位于路由和客户端之间,可以访问请求对象和响应对象,也可以调起下一个中间件
exports 和 module.exports的区别
module.exports才是真正的接口,而exports只不过是module.exports的一个辅助工具,exports是基于module.exports而实现的,
实际上由exports获取的属性和方法,最后全都赋给module.exports接口,不过前提是module.exports本身并不具备任何属性和方法;
网友评论