Node.js

一、入门

1.fs模块

search node.js fs 文档(文件系统模块)


2.http模块

search stackoverflow nodejs server


3.express框架

npm init -y

npm install express

CRM


实现在 Express 中提供静态文件



4.koa框架

npm i koa

npm i koa-send


免费部署node.js   (search heroku github)

http://zouzeir.xyz/2017/05/27/%E5%9C%A8Heroku-%E4%B8%8A%E9%83%A8%E7%BD%B2Node-js-%E5%BA%94%E7%94%A8/


5.Event Loop

JS引擎为单线程,同一时间只能做一件事情,但是会让网络(c++)去协同读取,这个问题就回到了同步和异步去理解,主线程上面同步事件依次执行,异步的事件可以再主线程通过回调来实现,移出待办事件序列,加入主线程执行序列。

Node.js的Event Loop:


timers 阶段:处理setTimeout / setInterval 到期回调函数;

poll 阶段:会停留的阶段,轮询阶段,监控时间,处理回调等;(特例:空闲阶段,在操作系统处理完后立刻进行回调,若回调时间超过了预设的时间,会导致timers延时进行回调函数的处理)

check阶段:处理setImmediate() 一般情况是先于setTimeout先执行,但是若第一次启动时间执行缓慢,setTimeout先执行;以下nextTick是永远先执行;



6、Macro Task & Micro Task

Macro Task(宏任务):所有setTimeout后面的回调都是宏任务;

 Micro Task(微任务):所有setImmediate和nextTick都是微任务;Promise亦;

先执行宏任务,再执行微任务;

主线轴,先执行同步任务,再执行微任务,最后执行宏任务里面的setTimeout的回调函数,然后循环下一轮;

上述,同步任务为宏任务,执行完毕微任务,执行完毕再宏任务;

你可能感兴趣的:(Node.js)