第一节 初识node
来源:互联网 发布:淘宝经营理念大全 编辑:程序博客网 时间:2024/06/06 03:53
一.认识Node
1.什么是Node
Node的名称
- Nodejs,NodeJS,Node.js等.本课程遵循官方说法Node
Node是javascript语言的服务器运行环境
所谓运行环境有两层意思:
1.javascript语言通过Node在服务器上运行,就好像Node是javascript的虚拟机.
2.Node提供大量的工具库,使javascript与操作系统可以互动,Node是javascript的工具库.Node内部采用Google公司的V8引擎,作为JavaScript语言解释器,执行JavaScript的速度非常快,性能非常好.
2.Node的诞生
3.为什么要学习Node
- 很火
- Linkedln(国外的社交网站)移动版from ROR to Node,base on Joyent
- 著名的支付公司Paypal From Java to Node.js
- 国内的网易公司,推出的开源服务器框架Pomelo
- 知乎的推送
- 阿里的天猫的业务
- UBER ,优步中国也是用node来创建的
- 很强
- 有很多知名度很高的开源项目都是node如:Express,PM2,CoffeeScript,socket.io
- 应用领域广
- RESTful API 主要的数据获取方式
- 实时通信 服务器和浏览器的消息的推送
- 高并发 node是单进程就可以承载大量的请求
- I/O阻塞 JavaScript的事件和异步可以协调I/O阻塞
二.Node与javascript
1.Node为什么选择JavaScript
- 高性能:通过事件驱动,非阻塞I/O达到高性能
- 符合事件驱动: JavaScript天生就是事件驱动,支持异步操作
- 没有历史包袱:JavaScript的门槛低,历史包袱少.
2.Node给JavaScript带来的意义
Node打破了JavaScript只能在浏览器中运行的局面,前后端环境统一,大大降低前后端转换所需的上下文交换代价
三.Node的特点
1.Node的特点及缺点
- 特点
- 环境部署简单
- 注重约定
- 基于事件
- 异步编程
- 高效与性能
- 单线程与多进程
- 子进程
- 多进程
- 缺点
- 大量采用匿名函数,使得抛出的异常不易阅读
给匿名函数命名是很好的习惯,匿名函数可以使代码更简洁,但是出错后的提示非常难以研读. - try/catch 限于同步代码,使得异常捕获较为复杂
try/catch是无法处理回调函数的,换句话说只能捕获同步代码的错误.如果是异步代码,
就需要在异步代码内部做异常的判断,但是异步处理不使用try/catch,一般和回调函数搭配使用
而且Node规定,回调函数的第一个参数,为异步的错误对象.
总结:同步代码使用try/catch来处理错误,
异步代码使用错误标志参数来进行异步的处理. - 单线程可靠性问题
单线程最大的好处就是:存在不同线程之间的资源的调动性,最大的问题就是可靠性.
当一个单线程在运行中发生了错误,而错误并没有获取到,这时候问题就出现了;
执行同步错误的时候被阻塞了,单线程是无能为力的.为了避免这种情况的发生,
需要注意以下几个方面:1.代码一定要严谨 2.尽量避免使用同步代码 3.使用多进程工具 - 不适合cpu密集型的场景
比如:事情的处理,纯粹的运算. - 回调代码习惯影响阅读
- 大量采用匿名函数,使得抛出的异常不易阅读
2.推荐Node学习的网站
- node官网 nodejs.org
- 程序员社区 gitHub.com
0 0
- 第一节 初识node
- struts2_第一节 初识mvc
- node初识
- 初识Node
- 初识NODE
- 初识node
- 初识node
- Java urlrewriter 第一节 初识urlrewriter
- 初识人工智能--第一节机器学习
- Linux第一节之指令初识体验
- Node.js初识
- 初识Node.js
- 初识node.js
- node.js 初识
- 初识Node.js
- 初识node.js
- node.js初识
- Node.js 初识
- 【趣题】【递归/分治】NKOJ1078 汉诺塔
- WEB前端面试重点
- 变量存储区域的划分
- spring默认就能行,没有就新建,有了就一起用一个事务(service调用service),一方错都回滚
- 二叉搜索树的迭代器
- 第一节 初识node
- JDBC获取存储过程中select出的结果集
- Scrapy研究探索(三)——Scrapy核心架构与代码运行分析
- 第二节 Node安装配置
- 笑话
- 第三节Node编程语言的基本语法(一)
- 多线程之同步线程通信小例子
- android 中数据库的基本使用
- CentOS时间同步