当前位置:首页 > 程序设计 >
《深入浅出Node.js》电子书封面

深入浅出Node.js

  • 发布时间:2019年10月30日 11:38:30
  • 作者:朴灵
  • 大小:19.3 MB
  • 类别:Node.js电子书
  • 格式:PDF
  • 版本:高质量版
  • 评分:7.4

    深入浅出Node.js PDF 高质量版

      给大家带来的一篇关于Node.js相关的电子书资源,介绍了关于深入浅出、Node.js方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小19.3 MB,朴灵编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.9。

      内容介绍

      深入浅出Node.js PDF

      这书从不一样的角度介绍了 Node 本质的特性和构造。由首章Node 介绍为数据库索引,涉及到Node的各个方面,主题思想包括控制模块体制的揭示、多线程I/O 保持原理的呈现、多线程编写程序的讨论、运行内存操纵的介绍、二进制统计数据Buffer的关键点、Node 中的网络编程基本、Node 中的Web 开发设计、系统进程间的消息传递、Node 检测及其根据Node搭建商品必须的常见问题。*后的附则介绍了Node 的安裝、调节、编号标准和NPM 库房等事项。

      这书合适想深层次掌握 Node 的工作人员阅读文章。

      目录

      • 第1章 Node简介  1
      • 1.1  Node的诞生历程  1
      • 1.2  Node的命名与起源  1
      • 1.2.1  为什么是JavaScript  2
      • 1.2.2  为什么叫Node  2
      • 1.3  Node给JavaScript带来的意义  2
      • 1.4  Node的特点  4
      • 1.4.1  异步I/O  4
      • 1.4.2  事件与回调函数  6
      • 1.4.3  单线程  7
      • 1.4.4  跨平台  7
      • 1.5  Node的应用场景  8
      • 1.5.1  I/O密集型  8
      • 1.5.2  是否不擅长CPU密集型业务  8
      • 1.5.3  与遗留系统和平共处  10
      • 1.5.4  分布式应用  10
      • 1.6  Node的使用者  10
      • 1.7  参考资源  11
      • 第2章 模块机制  12
      • 2.1  CommonJS规范  13
      • 2.1.1  CommonJS的出发点  13
      • 2.1.2  CommonJS的模块规范  14
      • 2.2  Node的模块实现  15
      • 2.2.1  优先从缓存加载  16
      • 2.2.2  路径分析和文件定位  16
      • 2.2.3  模块编译  18
      • 2.3  核心模块  20
      • 2.3.1  JavaScript核心模块的编译过程  21
      • 2.3.2  C/C 核心模块的编译过程  22
      • 2.3.3  核心模块的引入流程  25
      • 2.3.4  编写核心模块  25
      • 2.4  C/C 扩展模块  27
      • 2.4.1  前提条件  28
      • 2.4.2  C/C 扩展模块的编写  29
      • 2.4.3  C/C 扩展模块的编译  30
      • 2.4.4  C/C 扩展模块的加载  31
      • 2.5  模块调用栈  32
      • 2.6  包与NPM  33
      • 2.6.1  包结构  34
      • 2.6.2  包描述文件与NPM  34
      • 2.6.3  NPM常用功能  37
      • 2.6.4  局域NPM  42
      • 2.6.5  NPM潜在问题  43
      • 2.7  前后端共用模块  44
      • 2.7.1  模块的侧重点  44
      • 2.7.2  AMD规范  44
      • 2.7.3  CMD规范  45
      • 2.7.4  兼容多种模块规范  45
      • 2.8  总结  46
      • 2.9  参考资源  46
      • 第3章 异步I/O  47
      • 3.1  为什么要异步I/O  47
      • 3.1.1  用户体验  48
      • 3.1.2  资源分配  49
      • 3.2  异步I/O实现现状  50
      • 3.2.1  异步I/O与非阻塞I/O  50
      • 3.2.2  理想的非阻塞异步I/O  54
      • 3.2.3  现实的异步I/O  54
      • 3.3  Node的异步I/O  56
      • 3.3.1  事件循环  56
      • 3.3.2  观察者  56
      • 3.3.3  请求对象  57
      • 3.3.4  执行回调  59
      • 3.3.5  小结  60
      • 3.4  非I/O的异步API  60
      • 3.4.1  定时器  60
      • 3.4.2  process.nextTick()  61
      • 3.4.3  setImmediate()  62
      • 3.5  事件驱动与高性能服务器  63
      • 3.6  总结  65
      • 3.7  参考资源  65
      • 第4章 异步编程  66
      • 4.1  函数式编程  66
      • 4.1.1  高阶函数  66
      • 4.1.2  偏函数用法  67
      • 4.2  异步编程的优势与难点  68
      • 4.2.1  优势  69
      • 4.2.2  难点  70
      • 4.3  异步编程解决方案  74
      • 4.3.1  事件发布/订阅模式  74
      • 4.3.2  Promise/Deferred模式  82
      • 4.3.3  流程控制库  93
      • 4.4  异步并发控制  105
      • 4.4.1  bagpipe的解决方案  105
      • 4.4.2  async的解决方案  109
      • 4.5  总结  110
      • 4.6  参考资源  110
      • 第5章 内存控制  111
      • 5.1  V8的垃圾回收机制与内存限制  111
      • 5.1.1  Node与V8  112
      • 5.1.2  V8的内存限制  112
      • 5.1.3  V8的对象分配  112
      • 5.1.4  V8的垃圾回收机制  113
      • 5.1.5  查看垃圾回收日志  119
      • 5.2  高效使用内存  121
      • 5.2.1  作用域  121
      • 5.2.2  闭包  123
      • 5.2.3  小结  124
      • 5.3  内存指标  124
      • 5.3.1  查看内存使用情况  124
      • 5.3.2  堆外内存  126
      • 5.3.3  小结  127
      • 5.4  内存泄漏  127
      • 5.4.1  慎将内存当做缓存  127
      • 5.4.2  关注队列状态  130
      • 5.5  内存泄漏排查  130
      • 5.5.1  node-heapdump  131
      • 5.5.2  node-memwatch  132
      • 5.5.3  小结  135
      • 5.6  大内存应用  135
      • 5.7  总结  136
      • 5.8  参考资源  136
      • 第6章  理解Buffer  137
      • 6.1  Buffer结构  137
      • 6.1.1  模块结构  137
      • 6.1.2  Buffer对象  138
      • 6.1.3  Buffer内存分配  139
      • 6.2  Buffer的转换  141
      • 6.2.1  字符串转Buffer  141
      • 6.2.2  Buffer转字符串  142
      • 6.2.3  Buffer不支持的编码类型  142
      • 6.3  Buffer的拼接  143
      • 6.3.1  乱码是如何产生的  144
      • 6.3.2  setEncoding()与string_decoder()  144
      • 6.3.3  正确拼接Buffer  145
      • 6.4  Buffer与性能  146
      • 6.5  总结  149
      • 6.6  参考资源  149
      • 第7章 网络编程  150
      • 7.1  构建TCP服务  150
      • 7.1.1  TCP  150
      • 7.1.2  创建TCP服务器端  151
      • 7.1.3  TCP服务的事件  153
      • 7.2  构建UDP服务  154
      • 7.2.1  创建UDP套接字  154
      • 7.2.2  创建UDP服务器端  154
      • 7.2.3  创建UDP客户端  155
      • 7.2.4  UDP套接字事件  155
      • 7.3  构建HTTP服务  155
      • 7.3.1  HTTP  156
      • 7.3.2  http模块  157
      • 7.3.3  HTTP客户端  161
      • 7.4  构建WebSocket服务  163
      • 7.4.1  WebSocket握手  164
      • 7.4.2  WebSocket数据传输  167
      • 7.4.3  小结  169
      • 7.5  网络服务与安全  169
      • 7.5.1  TLS/SSL  170
      • 7.5.2  TLS服务  172
      • 7.5.3  HTTPS服务  173
      • 7.6  总结  175
      • 7.7  参考资源  176
      • 第8章 构建Web应用  177
      • 8.1  基础功能  177
      • 8.1.1  请求方法  178
      • 8.1.2  路径解析  179
      • 8.1.3  查询字符串  180
      • 8.1.4  Cookie  181
      • 8.1.5  Session  184
      • 8.1.6  缓存  190
      • 8.1.7  Basic认证  193
      • 8.2  数据上传  195
      • 8.2.1  表单数据  195
      • 8.2.2  其他格式  196
      • 8.2.3  附件上传  197
      • 8.2.4  数据上传与安全  199
      • 8.3  路由解析  201
      • 8.3.1  文件路径型  202
      • 8.3.2  MVC  202
      • 8.3.3  RESTful  207
      • 8.4  中间件  210
      • 8.4.1  异常处理  214
      • 8.4.2  中间件与性能  215
      • 8.4.3  小结  216
      • 8.5  页面渲染  217
      • 8.5.1  内容响应  217
      • 8.5.2  视图渲染  219
      • 8.5.3  模板  220
      • 8.5.4  Bigpipe  231
      • 8.6  总结  235
      • 8.7  参考资源  235
      • 第9章 玩转进程  236
      • 9.1  服务模型的变迁  236
      • 9.1.1  石器时代:同步  236
      • 9.1.2  青铜时代:复制进程  237
      • 9.1.3  白银时代:多线程  237
      • 9.1.4  黄金时代:事件驱动  237
      • 9.2  多进程架构  238
      • 9.2.1  创建子进程  239
      • 9.2.2  进程间通信  240
      • 9.2.3  句柄传递  242
      • 9.2.4  小结  247
      • 9.3  集群稳定之路  248
      • 9.3.1  进程事件  248
      • 9.3.2  自动重启  249
      • 9.3.3  负载均衡  254
      • 9.3.4  状态共享  255
      • 9.4  Cluster模块  257
      • 9.4.1  Cluster工作原理  258
      • 9.4.2  Cluster事件  259
      • 9.5  总结  259
      • 9.6  参考资源  260
      • 第10章 测试  261
      • 10.1  单元测试  261
      • 10.1.1  单元测试的意义  261
      • 10.1.2  单元测试介绍  263
      • 10.1.3  工程化与自动化  276
      • 10.1.4  小结  277
      • 10.2  性能测试  278
      • 10.2.1  基准测试  278
      • 10.2.2  压力测试  280
      • 10.2.3  基准测试驱动开发  281
      • 10.2.4  测试数据与业务数据的转换  283
      • 10.3  总结  284
      • 10.4  参考资源  284
      • 第11章 产品化  285
      • 11.1  项目工程化  285
      • 11.1.1  目录结构  285
      • 11.1.2  构建工具  286
      • 11.1.3  编码规范  289
      • 11.1.4  代码审查  289
      • 11.2  部署流程  290
      • 11.2.1  部署环境  291
      • 11.2.2  部署操作  291
      • 11.3  性能  293
      • 11.3.1  动静分离  293
      • 11.3.2  启用缓存  294
      • 11.3.3  多进程架构  294
      • 11.3.4  读写分离  295
      • 11.4  日志  295
      • 11.4.1  访问日志  295
      • 11.4.2  异常日志  296
      • 11.4.3  日志与数据库  299
      • 11.4.4  分割日志  299
      • 11.4.5  小结  299
      • 11.5  监控报警  299
      • 11.5.1  监控  300
      • 11.5.2  报警的实现  302
      • 11.5.3  监控系统的稳定性  303
      • 11.6  稳定性  303
      • 11.7  异构共存  304
      • 11.8  总结  305
      • 11.9  参考资源  305
      • 附录A  安装Node  306
      • A.1  Windows系统下的Node安装  306
      • A.2  Mac系统下Node的安装  307
      • A.3  Linux系统下Node的安装  308
      • A.4  总结  309
      • A.5  参考资源  309
      • 附录B  调试Node  310
      • B.1  Debugger  310
      • B.2  Node Inspector  311
      • B.2.1  安装Node Inspector  312
      • B.2.2  错误堆栈  312
      • B.3  总结  313
      • 附录C  Node编码规范  314
      • C.1  根源  314
      • C.2  编码规范  315
      • C.2.1  空格与格式  315
      • C.2.2  命名规范  317
      • C.2.3  比较操作  318
      • C.2.4  字面量  318
      • C.2.5  作用域  318
      • C.2.6  数组与对象  319
      • C.2.7  异步  320
      • C.2.8  类与模块  320
      • C.2.9  注解规范  321
      • C.3  最佳实践  321
      • C.3.1  冲突的解决原则  321
      • C.3.2  给编辑器设置检测工具  321
      • C.3.3  版本控制中的hook  322
      • C.3.4  持续集成  322
      • C.4  总结  322
      • C.5  参考资源  323
      • 附录D  搭建局域NPM仓库  324
      • D.1  NPM仓库的安装  325
      • D.1.1  安装Erlang和CouchDB  325
      • D.1.2  搭建NPM仓库  326
      • D.2  高阶应用  328
      • D.2.1  镜像仓库  328
      • D.2.2  私有模块应用  328
      • D.2.3  纯私有仓库  329
      • D.3  总结  331
      • D.4  参考资源  332

      学习笔记

      Node.JS循环删除非空文件夹及子目录下的所有文件

      最近要实现一个循环文件夹的功能,文件夹可能不是空的,还可能带有子文件夹和文件,网上找了一些现有的库,但是都不提供删除进度。所以就自己写了一个。 var fs = require('fs')var path = require('path')var remove = function(tarPath, cb, removeStates) { if (!removeStates) { removeStates = { cur: 0, all: 0 } } else { if (!removeStates.cur) { removeStates.cur = 0; } if (!removeStates.all) { removeStates.all = 0; } } removeStates.all++; fs.stat(tarPath, function(err, states) { removeStates.cur++; if (err) { cb cb() return } if (states.isDirectory()) { fs.readdir(tarPath, function(err, files) { if (err) { console.log(err) cb cb() return } if (files.length 1) { fs.rmdir(tarPath, cb) return } var count = 0 var checkEnd = function() { if ……

      Node.js连接mongodb实例代码

      前面介绍了node.js操作mysql以及redis的内容,这里继续学习操作mongodb的内容。 安装驱动 安装命令 cnpm install mongodb 安装成功 数据库操作 因为mongodb是文档类型的数据库,与mysql有很大不同,mongodb会自动创建数据库和集合,并不需要提前进行手动创建。 Insert var MongoClient = require("mongodb").MongoClient;var DB_CONN_STR = "mongodb://sa:sa@localhost:27017/test_db";var insertData = function (db, callback) { //连接数据表my_firsrt_collection var collection = db.collection("my_firsrt_collection"); var data = [{ "name": "wolfy1", "age": 20 }, { "name": "wolfy2", "age": 20 }] collection.insert(data, function (err, result) { if (err) { console.log("error:" + err); return; }; callback(result); });}; MongoClient.conne……

      Node.js重新刷新session过期时间的方法

      在Node.js中,我们通常使用express-session这个包来使用和管理session,保存服务端和客户端浏览器之间的会话状态。那如何才能实现当用户刷新当前页面或者点击页面上的按钮时重新刷新session的过期时间呢?类似于ASP.NET中session会话状态,只要在一定的时间内页面一直保持活动状态,session就不会过期。通过下面的代码可以实现这个功能,我们在Node.js的代码中加入下面的中间件: // use this middleware to reset cookie expiration time// when user hit page every timeapp.use(function(req, res, next){req.session._garbage = Date();req.session.touch();next();}); 这样,每次当有请求过来时,该中间件都会重新修改session的过期时间,从而达到预期的效果。……

      基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践

      淘宝网线上应用的传统软件栈结构为 Nginx + Velocity + Java,即: 在这个体系中,Nginx 将请求转发给 Java 应用,后者处理完事务,再将数据用 Velocity 模板渲染成最终的页面。 引入 Node.js 之后,我们势必要面临以下几个问题: 技术栈的拓扑结构该如何设计,部署方式该如何选择,才算是科学合理?项目完成后,该如何切分流量,对运维来说才算是方便快捷?遇到线上的问题,如何最快地解除险情,避免更大的损失?如何确保应用的健康情况,在负载均衡调度的层面加以管理?承系统拓扑 按照我们在前后端分离的思考与实践(二)- 基于前后端分离的模版探索一文中的思路,Velocity 需要被 Node.js 取代,从而……

      以上就是本次介绍的Node.js电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:JavaScript DOM编程艺术

      下一篇:JavaScript之美

      展开 +

      收起 -

      下载地址:百度网盘下载
      Node.js相关电子书
      Node.js微服务
      Node.js微服务 高清版

      Node.js微服务 对如何采用Node.js及其生态工具进行微服务开发的*实践做了全面的介绍,内容包括对微服务架构基本概念及设计原则的讲解,以及如何采用Node.js搭配Seneca、PM2和Docker等现代化工具来

      立即下载
      Node.js:来一打(C++ 扩展)
      Node.js:来一打(C++ 扩展) 高质量版

      Node.js做为近些年兴盛的这种程序编写运作时,托V8模块的福,在做为后端开发服务项目时会较为高的运作高效率,在许多情景下针对人们的平时开发设计充足用了。但是,它更为开发人员开过

      立即下载
      Node.js项目实践:构建可扩展的Web应用
      Node.js项目实践:构建可扩展的Web应用 高清版

      《Node.js项目实践:构建可扩展的Web应用》 用专业的讲解方式,带领读者从Hello World示例开始,一步步将其构建成有实际用途的Node.js应用。《Node.js项目实践:构建可扩展的Web应用》涉及许多组

      立即下载
      新时期的Node.js入门
      新时期的Node.js入门 清晰影印版

      Node.js是一门开源的、为Web而生的语言,具有高并发、异步等特点,并且拥有一个十分活跃的开发者社区。与Ruby、Python等语言相比,Node.js更年轻、更易于没有经验的人上手使用,因此很快在世界各地的开发者中收获了一大批拥趸。

      立即下载
      Node.js硬实战:115个核心技巧
      Node.js硬实战:115个核心技巧 高清版

      《 Node.js 硬实战:115 个核心技巧 》是一本面向实战的Node.js教程进阶指南。作为资深专家,《Node.js 硬实战:115 个核心技巧》作者独辟蹊径,将着眼点放在Node.js 的核心模块和网络应用,通过精

      立即下载
      Node.js调试指南
      Node.js调试指南 超清版

      本书是Node.js实战作者力作,Node.js调试指南,涉及CPU、内存、代码、工具、APM、日志、监控、应用等,本书并不适合Node.js 初学者,适合有一定Node.js 开发经验的人阅读

      立即下载
      Node.js实战
      Node.js实战 超清扫描版

      《Node.js实战(第2季)》作者来自CNode社区点击率颇高、粉丝数万的《一起学node.js》。《Node.js实战(第2季)》没有成为教条式的入门级别,而是真正进入Node.js实战层次。

      立即下载
      写给PHP开发者的Node.js学习指南
      写给PHP开发者的Node.js学习指南 高清版

      Node.js是一套用来编写高性能网络服务器的JavaScript工具包。结合PHP和Node.js,我们可以概览整个Web服务器从起源到现在的历史过程以及其中的改变。 《 写给PHP开发者的Node.js学习指南 》的目的是

      立即下载
      读者留言
      qingyi5000

      qingyi5000 提供上传

      资源
      40
      粉丝
      36
      喜欢
      309
      评论
      17

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com