Node.js技术栈—侧重于服务端的学习指南 https://www.nodejs.red
Node.js技术栈
为Node.js学习贡献一份自己微小的力量,本文档是作者从事
Node.js Developer
以来的学习历程,旨在为大家提供一个较详细的学习教程,侧重点更倾向于Node.js服务端所涉及的技术栈,如果本文能为您得到帮助,请给予支持!
如何支持:
- 搜索公众号
Node.js技术栈
进行关注 - 点击右上角Star :star: 给予关注
- 分享给您身边更多的小伙伴
JavaScript |
ECMAScript6 |
Node.js |
DataBase |
Microservice |
HTTP |
DevOps |
工具 |
资料 |
---|
JavaScript
- 基础 [more]
[基础]
常见问题[基础]
undefined与undeclared的区别?[基础]
typeof、instanceof 类型检测[作用域]
eval()、with 欺骗词法作用域[Error]
错误类型ReferenceError、TypeError的区别?[面试]
编写一个函数实现多维数组去重?
,参考:数组去重的三种实现方式[面试]
实现对多维数组降维?
,参考:数组降维–扁平化多维数组
- This [more]
- 函数 [more]
[Function]
函数声明与函数表达式[Function]
内置函数[Function]
arguments对象[Function]
call和apply的使用与区别?[Function]
引用传递[面试]
递归调用实现一个阶乘函数?
,参考:arguments对象[面试]
如何理解JavaScript中的引用传递与值传递?JS中是否拥有引用传递?
,参考:引用传递[面试]
经典面试题:什么是匿名函数和闭包?
,参考:深入理解匿名函数与闭包
- 对象 [more]
[Object]
创建对象的四种方法:对象字面量、new关键字构造形式、create方法、原型prototype创建[面试]
什么是引用传递?{} == {} 是否等于true
,参考:对象引用类型示例分析[面试]
如何编写一个对象的深度拷贝函数?
,参考:对象copy实现[面试]
new操作符具体做了哪些操作,重要知识点!
,参考:使用new关键字构造形式创建
- 原型 [more]
[ProtoType]
原型概念[ProtoType]
原型模式的执行流程[ProtoType]
构造函数实例属性方法[ProtoType]
构建原型属性方法[ProtoType]
原型字面量创建对象、字面量创建对象、构造函数创建对象[ProtoType]
原型的实际应用、jquery中原型应用、zepto中原型的应用[面试]
如何实现原型的扩展?,参考:原型的扩展
- 正则 [more]
ECMAScript6
- 变量声明 [more]
[Variable]
新增let&const变量声明
- 解构赋值 [more]
- 扩展系列 [more]
- 集合系列 [more]
[Set]
集合Set、WeakSet[Map]
集合Map、WeakMap[Map-Array]
Map与Array横向对比增、查、改、删[Set-Array]
Set与Array增、查、改、删对比[Map-Set-Array]
Map、Set、Object三者增、查、改、删对比
- Promise [more]
[Promise]
Promise的基本使用和原理[Promise]
Callback方式书写[Promise]
Promise方式书写[Promise]
Promise.finally()[Promise]
Promise并行执行 Promise.all()[Promise]
Promise率先执行 Promise.race()[Promise]
错误捕获[面试]
Promise 中 .then 的第二参数与 .catch 有什么区别?
,参考:错误捕获[面试]
怎么让一个函数无论promise对象成功和失败都能被调用?
,参考:finally
- Decorators [more]
- Symbol [more]
- Generator [more]
Nodejs
- 模块 [more]
- 事件轮询(Event Loop) [more]
[EventLoop]
线程模型、EventLoop介绍[I/O]
操作系统I/O模型及轮询技术演变[I/O]
白话风格(小明与妹子的邂逅)讲解I/O演进[Node.js-EventLoop]
Node.js中的Event Loop[Browser-EventLoop]
浏览器中的Event Loop[Interview]
I/O多路复用轮询技术select和epoll的区别?
,参考:#
- 中间件 [more]
[Mddleware]
常用Web框架&中间件汇总
- 缓存
[Cache]
memory-fs 将文件写入内存[Cache]
Memory Cache[Cache]
Node Cache
- 定时任务
[Schedule]
node-schedule[Schedule]
Agenda 将Node中的定时任务存储在数据库中(官方推荐MongoDB)[Schedule]
Node.js结合RabbitMQ延迟队列实现定时任务
- 模板引擎
[Template]
Ejs[Template]
Handlebarsjs[Template]
Jade
- 日志记录收集
[Logger]
Sentry–错误日志收集框架[Logger]
log4js 日志记录工具[Logger]
ELK–开源的日志分析系统[Logger]
winston日志模块
- 测试
Unit Testing
mocha NodeJS里最常用的测试框架Unit Testing
chai 一个断言库Unit Testing
Jest — Facebook推出的一款测试框架,集成了 Mocha,chai,jsdom,sinon等功能。BDD Testing
Jasmine — 一款基于行为驱动的JavaScript测试框架Testing Tool
istanbul Istanbul - a JS code coverage tool written in JS 测试覆盖率E2E Testing
Puppeteer
- 框架
[Framework]
Express 中文版、Express of English Version[Framework]
Koa 中文版、Koa of English Version[Framework]
Egg 中文版、Egg of English Version[Framework]
Nest.js 中文版、Nest.js
- ORM
DataBase
Relational
NoSQL
- Search Engines
Microservice
- 服务注册发现之Consul [more]
[Consul]
使用Consul解决了哪些问题[Consul]
微服务Consul系列之服务部署、搭建、使用[Consul]
微服务Consul系列之集群搭建[Consul]
微服务Consul系列之服务注册与服务发现[Question]
微服务Consul系列之问题汇总篇
- 消息中间件之RabbitMQ [more]
[RabbitMQ]
主流消息中间件简介[RabbitMQ]
RabbitMQ安装、部署、启动- Mac版安装
- Linux系统(Ubuntu、CentOS)安装
- 运行与启动
[RabbitMQ]
RabbitMQ延迟队列实现定时任务
- 轻量级数据通信
HTTP协议
- http三次握手 [more]
[HTTP三次握手]
三次握手时序图[HTTP三次握手]
三次握手数据包详细内容分析[HTTP三次握手]
分析总结[面试]
说下TCP三次握手的过程?
,参考:三次握手时序图
- 跨域CORS [more]
[CORS]
跨域形成原理简介[CORS]
实例来验证跨域的产生过程[CORS]
基于http协议层面的几种解决办法[CORS]
CORS预请求[面试]
你之前遇见过跨域吗?说一下跨域的形成与实现。
,参考:CORS
- 缓存头Cache-Control的含义和使用
[Cache-Control]
可缓存性(public、private、no-cache)[Cache-Control]
到期 (max-age、s-maxage、max-stale)[Cache-Control]
重新验证 (must-revalidate、proxy-revalidate)[Cache-Control]
其它 (no-store、no-transform)[Cache-Control]
缓存cache-control示例
- HTTP长链接
[KeepAlive]
http长链接简介[KeepAlive]
http/1.1中长链接的实现示例[KeepAlive]
长链接在http2中的应用与http/1.1协议中的对比[面试]
Chrome浏览器允许的一次性最大TCP并发链接是几个?
,参考:HTTP长链接分析
- Nginx服务配置
[Nginx]
Nginx安装启动[Nginx]
修改hosts文件配置本地域名[Nginx]
Nginx配置缓存[Nginx]
nginx部署https服务[Nginx]
实现http2协议
DevOps
- Node.js生产环境完整部署指南 [more]
[Node.js]
用户权限管理及登陆服务器[Node.js]
增强服务器安全等级[Node.js]
Node.js生产环境部署[Node.js]
Nginx端口映射[Node.js]
Mongodb生产环境部署[Node.js]
实现服务器与第三方仓库的关联-PM2代码部署
- NPM模块管理 [more]
[NPM]
npm源设置[NPM]
nnpm注册登录[NPM]
npm module 发布[NPM]
可能遇到的问题
- Linux系统问题汇总 [more]
工具
- Git [more]
[Git]
Git常用命令及日常问题集锦
- SEO [more]
[SEO实战]
SEO网站优化title设置与快速排名
资料
未完待续,持续更新中。。。
16 回复
👍
手动点赞
mark
mark
好文,但是很多链接有问题哦!
mark
@JsonMa 之前目录做过调整,我会在检查下的 有问题我没发现的可以提出来哈 我做调整!🤝
mark
mark
好文
手动点赞
mark
mark
增加域名在线预览:https://www.nodejs.red/
真是棒, 感觉省了好多力气
@Luyakus 谢谢!有好的文章欢迎分享哈!