zoukankan      html  css  js  c++  java
  • nodeJs基础

    Node.js 是一个基于Chrome JavaScript 执行时建立的一个平台, 用来方便地搭建高速的 易于扩展的网络应用· Node.js 借助事件驱动, 非堵塞I/O 模型变得轻量和高效, 很适合 执行在分布式设备 的 数据密集型 的实时应用


    Node.js是一个能够高速构建网络服务及应用的平台[2] 。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对Google V8引擎(应用于Google Chrome浏览器)进行了封装。
    V8引擎执行Javascript的速度很快,性能很好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下执行得更好。[3] 
    比如,在server环境中,处理二进制数据一般是不可缺少的,但Javascript对此支持不足,因此,V8.Node添加了Buffer类,方便而且高效地处理二进制数据。因此,Node不只简单地使用了V8,还对其进行了优化,使其在各环境下更加给力。


    node.js的特点有哪些
    1:异步IO
    异步相相应的就是不同步,使用异步能够更高的分配资源
    在node中绝大多数操作都是异步的方式进行调用,node团队排除万难在底层构建了非常多异步io的API,从文件读取到网络请求等,这种意义在于,在node中我们能够从语言层面非常自然的进行并行的io操作,每一个调用之间不用多余等待
    比如读取两个文件,採用同步的方式会是(操作1+操作2)总时间
    而异步则是max(操作1+操作2)
    2:事件与回调函数
    node选择的是javascript,javascript不仅在前段担任很多其它职责,在后端相同担任职责,它将前段浏览器中应用广泛并且成熟的时间引入到了后端,配合异步io将时间点暴露给了业务逻辑
    案例:node能够在后端创建一个server,处理用户发送的请求
    相比之下,不管前段还是后端,事件都是经常使用的
    事件的编程方式是轻量级松耦合之关注时间点的,可是在多个异场步任务的场景下,时间之间的相互独立,怎样合作将会是一个问题


    node中的事件回调是node 的一大特色,他攻克了这个问题,回调函数是最好的接受异步调用返回数据的方式,(非常多老程序猿接受不了这一点),代码的编写顺序与运行顺序并无太大的关系(这也导致了在流程控制方面,不是非常好的阅读,所以还是建议尽量写正常代码)
    3:单线程处理方式
    node保持了javascript在浏览器中单线程的特点,在node中无法享受不论什么状态,所以不用操心同步问题
    可是无法避免的他也有自己的缺点
    无法利用多核cpu
    产生错误将全体退出程序
    4:跨平台
    在各个平台下都能够使用


    为什么选择 javaScript
    javaScript诞生以来位置一直非常尴尬,之前基本上没人把它当作一个编程语言(没有非常多程序猿会为了js花费太多的心思来学习)仅仅是把它当作一个网页小脚本,很多其它的应用场景在于数据验证(事实上这才是最早公布js的用处),可是随着web2.0时代的到来,js已经在网页中发挥出来很多其它的特色,比如让你的网页更加有动画感
    在web2.0时代很多其它的前段框架被开发人员开发出来,最初仅仅是为了解决浏览器之间不兼容性问题,比如jquery,可是随着很多其它的用户需求在前断出现,js从前段应用出如今了开发应用级别上面,
    工具(浏览器兼容性)——组件(功能模块)——框架(功能模块组织)——应用(应用模块组织)


    CommonJS让javascript焕发的第二春,他让js在不论什么地方能够执行起来
    js本身的弱点
    没有模块系统
    标准库比較少——核心库
    标准接口--比如数据库连接
    包管理系统——自己主动载入和安装依赖的问额
    CommonJS攻克了上述全部问题
    server端js
    命令行工具
    桌面入行应用程序
    CommonJS模块规范
    模块引入
    require 用来引入模块
    模块定义
    module代表当前模块对象
    exports导出模块
  • 相关阅读:
    img 的data-src 属性及懒加载
    try catch 用法
    input 的各种属性的验证 checkValidity兼容性
    表单提交的方法。
    通信原理
    计算机组成原理
    CREC 2017
    POJ 1201 Intervals
    HDU 3440 House Man
    poj 3169 Layout
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4359362.html
Copyright © 2011-2022 走看看