zoukankan      html  css  js  c++  java
  • Node.js知识点学习

    Node.js知识点学习

    一、基本概念

    Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台。可以说,Node.js开创了javascript模块化开发的先河,早期的javascript需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成 类。最后node.js的出现才开始有了js模块化开发的概念,这使得臃肿的js代码免去了命名冲突等一系列开发难题。

    Node最大的特点就是采用了异步式I/O与事件驱动的架构设计。Node.js是一个让js运行在浏览器外的平台。其最初目标是实现事件驱动,非阻塞I/O的web服务器。

    Node.js 只是一个 JavaScript 的运行环境(或者说是一组库), 为标准 js 补充了有关异步 IO, 即读写网络和文件的功能。 一个库嘛,无非是调调 API 什么的,除了略反人类的事件回调之外,和其他后端语言(PHP, Python)也差不了多少。

    Node.js使用的是单线程模式,每一个线程完成一个功能,一个进程可以有多个线程,对于所有的I/O都采用异步式的请求方式。每个异步式I/O请求完成后都会被推送到事件队列,等待程序进程进行处理。

    总之,node的核心思想就是:非阻塞,单线程和事件驱动。(同步对应的是阻塞,异步对应的是非阻塞)

    ebay选择Node.js的理由,可以归纳为以下4点:

    动态语言:开发效率非常高,并有能力构建复杂系统,如ql.io。
    性能和I/O负载:Nodejs非常好的解决了IO密集的问题,通过异步IO来实现。
    连接的内存开销:每个Node.js进程可以支持超过12万活跃的连接,每个连接消耗大约2K的内存。
    操作性:实现了Nodejs对于内存堆栈的监控系统。
    

    Node.JS架构示意图

    Node.js可以做什么?

    Web开发:Express + EJS + Mongoose/MySQL

    express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。
    Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的功能。
    
    ejs是一个嵌入的Javascript模板引擎,通过编译生成HTML的代码。
    
    mongoose 是MongoDB的对象模型工具,通过Mongoose框架,可以进行访问MongoDB的操作。
    
    mysql 是连接MySQL数据库的通信API,可以进行访问MySQL的操作。
    

    通常用Node.js做Web开发,需要3个框架配合使用,就像Java中的SSH。

    Web聊天室(IM):Express + Socket.io

    socket.io一个是基于Nodejs架构体系的,支持websocket的协议用于时时通信的一个软件包。socket.io给跨浏览器构建实时应用提供了完整的封装,socket.io完全由javascript实现。

  • 相关阅读:
    学习ActiveMQ(七):JMS消息的事务管理
    2020杭电多校第三场题解
    2020牛客暑期多校训练营第六场题解
    2020杭电多校第二场题解
    2020 Petrozavodsk Winter Camp, Jagiellonian U Contest 部分题解
    Educational Codeforces Round 86 (Rated for Div. 2) 部分题解
    2020, XIII Samara Regional Intercollegiate Programming Contest 题解
    2019 JUST Programming Contest题解
    2019-2020 ICPC Asia Taipei-Hsinchu Regional Contest 部分题解
    2019 ICPC Universidad Nacional de Colombia Programming Contest 题解
  • 原文地址:https://www.cnblogs.com/saryli/p/6916595.html
Copyright © 2011-2022 走看看