note-it-nodejs

  1. Some Node Guide
  2. it-nodejs
  3. -
  • Resource
    1. NPM:
    2. Concept:
    3. loop evnet
  • https://nodejs.org/en/knowledge/HTTP/servers/how-to-serve-static-files/

    Some Node Guide

    2020-01-31 10:20:38
    In summary, the Event Loop executes the JavaScript callbacks registered for events, and is also responsible for fulfilling non-blocking asynchronous requests like network I/O.

    Node uses the Worker Pool to handle “expensive” tasks. This includes I/O for which an operating system does not provide a non-blocking version, as well as particularly CPU-intensive tasks.

    The fair treatment of clients is thus the responsibility of your application. This means that you shouldn’t do too much work for any client in any single callback or task.

    You should make sure you never block the Event Loop. In other words, each of your JavaScript callbacks should complete quickly. This of course also applies to your await’s, your Promise.then’s, and so on.

    One common way to block the Event Loop disastrously is by using a “vulnerable” regular expression.

    it-nodejs

    in nodejs Event-loop as a runtime-construct .
    in other system, there always a blocking call to start event-loop.

    http is a first-class citizen in nodejs .

    multi-core
    cluster, share sockets between process , load balance .

    -

    Resource

    https://coding.net/u/Marcustar/p/bookNote

    https://www.nodebeginner.org/index-zh-cn.html
    Martin Fowlers关于依赖注入的大作来作为背景知识
    我是在读了Steve Yegge的大作名词王国中的死刑之后理解函数编程。
    node-lesson 包教不包会
    https://github.com/alsotang/node-lessons

    Semantic UI

    NPM:

    全局/本地 安装
    npm config set proxy null 
    npm install module@version
    npm list -g ##查看所有全局安装
    package.json
    npm uninstall ; npm update  ; npm search ; npm init ; npm adduser ; npm publish ; npm helper ; 
    版本号: X.Y.Z  X打版本号不往下兼容 , Y , X小补丁
    npm cache clear , 
    

    Concept:

    Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。
    Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。
    Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。
    Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.
    Module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是Module.exports而不是exports。
    所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。
    现在你明白了,如果你想你的模块是一个特定的类型就用Module.exports。如果你想的模块是一个典型的“实例化对象”就用exports。
    
    在 Node 应用程序中,执行异步操作的函数将回调函数作为最后一个参数, 回调函数接收错误对象作为第一个参数。 
    
    Node.js Buffer(缓冲区):
        JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
        在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。
            原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。
    
    模块:
        是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。
        其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。 
    
        Node.js 的 require方法中的文件查找策略如下:
            由于Node.js中存在4类模块(原生模块和3种文件模块{文件缓存,文件})
    
    回调:
        function(data,function(error,data){...})
    
    router:
    
    全局对象:
        在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。
        在 Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文。
        __filename 表示当前正在执行的脚本的文件名。
        ——dir 表示当前执行脚本所在的目录
        setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。
        clearTimeout( t ) 全局函数用于停止一个之前通过 setTimeout() 创建的定时器。 参数 t 是通过 setTimeout() 函数创建的定时器。
        setInterval(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。返回一个代表定时器的句柄值。可以使用 clearInterval(t) 函数来清除定时器。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
         process 是一个全局变量,即 global 对象的属性。它用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口。
    

    loop evnet

    setTimeout , setImmediate , setInterval , process.nextTict();
    

    --Write by Marcustar,关关雎鸠,在河之洲
    目录
    Download 相册