NodeJs-06 Event Loop
Event Loop
Event Loop 可以让 Node.js 实现非阻塞的 IO 操作,尽管 Node.js 本身是单线程的。
Node.js 通过将自身的操作卸载到操作系统中,现在的操作系统大多数是多核的,
可以再后台处理多个操作,并且当操作完成之后,会在合适的时间通知 Node.js,让 Node.js 拿到真正的执行结果。
Event Loop 解释
Node.js 启...
2018-04-27 10:07:14 |
NodeJs
NodeJs-05 Blocking vs Non-Blocking
阻塞(Blocking)
Blocking
是在节点中执行额外的JavaScript时。js进程必须等待非javascript操作完成。这是因为在发生阻塞操作时,事件循环无法继续运行JavaScript。
在 Node.js,由于CPU密集型而不是等待非JavaScript操作(比如I/O)而表现不佳的JavaScript,通常不被称为阻塞。
节点中的同步方法。使用 libuv 的js...
2018-04-26 03:17:51 |
NodeJs
NodeJs-04 Profile, Docker
Profile
NodeJS 调优 的方式有多种。
使用 profiler inside V8 可以让程序执行期间定期对栈进行采样。
启用
执行命令如下:
node --prof ${js_file_name}
log
执行这个命令之后,会在 js 同级目录下生成一个 isolate-0x102802400-v8.log 文件。
里面记录的内容比较多,节选部分
v8-ve...
2018-04-25 06:05:12 |
NodeJs
NPM-node.js 的包管理工具
NPM
NPM 是 node.js 的一种包管理工具。
作用:
允许用户从NPM服务器下载别人编写的第三方包到本地使用
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用
版本
查看
$ npm -v
5.6.0
版本号说明
使用NPM...
2018-04-24 14:22:23 |
NodeJs
NodeJs-03 Debug
Debug
开启调试
Node.js
Enable Inspector
当开启 --inspect 时,Node.js 进程通过 websocket 侦听由检查器协议
定义的诊断命令,默认情况下为主机和端口127.0.0.1:9229。
每个进程也被分配一个唯一的UUID(例如:0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e)。
检查器客户...
2018-04-23 23:01:32 |
NodeJs
WebPack-01-Quick Start
WebPack
Webpack is a static module bundler for modern JavaScript applications.
When webpack processes your application, it recursively builds a dependency graph
that includes every module your app...
2018-04-23 13:59:43 |
WebPack
NodeJs-02 First Server
简单的服务
server.js
内容如下:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader...
2018-04-23 13:08:50 |
NodeJs
NodeJs-01 Hello
NodeJs
Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
Node.js’ package eco...
2018-04-23 01:19:44 |
NodeJs