初学node.js

什么是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本身并不具备任何属性和方法;

你可能感兴趣的:(初学node.js)