本文档是作者从事 Node.js Developer 以来的学习历程,旨在为大家提供一个较详细的学习教程,侧重点更倾向 于Node.js 服务端所涉及的技术栈,如果本文能为您得到帮助,请给予支持!
如何支持:
- 关注公众号 Nodejs技术栈
- 点击右上角Star ⭐ 给予关注
- 分享给您身边更多的小伙伴
为 Node.js 面试及常见问题打造的一个项目 🇨🇳 Node.js 面试问题 | 🇬🇧 Nodejs-Interview-Questions
作者: 五月君,Node.js Developer,慕课网认证作者。
JavaScript |
ECMAScript6 |
Node.js |
DataBase |
Microservice |
HTTP |
DevOps |
工具 |
资料 |
|---|
Node.js技术栈在线预览: https://www.nodejs.red/
- 基础 [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]
- 变量声明 [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]
- 模块 [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
- 日志记录收集 [more]
[Logger]Sentry--错误日志收集框架[Logger]log4js 日志记录工具[Logger]ELK--开源的日志分析系统[Logger]winston日志模块
- 测试
Unit Testingmocha NodeJS里最常用的测试框架Unit Testingchai 一个断言库Unit TestingJest — Facebook推出的一款测试框架,集成了 Mocha,chai,jsdom,sinon等功能。BDD TestingJasmine — 一款基于行为驱动的JavaScript测试框架Testing Toolistanbul Istanbul - a JS code coverage tool written in JS 测试覆盖率E2E TestingPuppeteer
- 框架
[Framework]Express 中文版、Express of English Version[Framework]Koa 中文版、Koa of English Version[Framework]Egg 中文版、Egg of English Version[Framework]Nest.js 中文版、Nest.js
- ORM
RelationalNoSQL- Search Engines
- 服务注册发现之Consul [more]
[Consul]使用Consul解决了哪些问题[Consul]微服务Consul系列之服务部署、搭建、使用[Consul]微服务Consul系列之集群搭建[Consul]微服务Consul系列之服务注册与服务发现[Question]微服务Consul系列之问题汇总篇
- 消息中间件之RabbitMQ [more]
[RabbitMQ]主流消息中间件简介[RabbitMQ]RabbitMQ安装、部署、启动- Mac版安装
- Linux系统(Ubuntu、CentOS)安装
- 运行与启动
[QOS]RabbitMQ高级特性消费端限流策略实现[RabbitMQ]RabbitMQ延迟队列实现定时任务
- 轻量级数据通信
- 理论加实践搞懂浏览器缓存策略
- Nginx 代理服务配置缓存实践
- HTTP 长链接 — HTTP1.1 与 HTTP2 下的对比
- 跨域(CORS)产生的原因分析与解决方案
- Socket hang up 是什么?什么情况下会发生?
- DNS 域名解析过程?
- 内容安全策略(CSP)
- URI/URL/URN
- Cookie 和 Session
- 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设置与快速排名
- Docsify 快速搭建个人博客
建立本开源项目的初衷是基于个人学习与工作中对 Node.js 相关技术栈的总结记录,在这里也希望能帮助一些在学习 Node.js 过程中遇到问题的小伙伴,如果您需要转载本仓库的一些文章到自己的博客,请按照以下格式注明出处,谢谢合作。
作者:五月君
链接:https://github.com/Q-Angelo/Nodejs-Roadmap
来源:Nodejs.js技术栈
- 如果您对本项目有任何建议或发现文中内容有误的,欢迎提交 issues 进行指正。
- 对于文中我没有涉及到知识点,欢迎提交 PR。
- 如果您有文章推荐请以 markdown 格式到邮箱
[email protected],中文技术文档的写作规范指南。
- 加入群聊 本群的宗旨是给大家提供一个良好的技术学习交流平台,所以杜绝一切广告!由于微信群人满 100 之后无法加入,请扫描下方二维码先添加作者 “五月君” 微信,备注:Node.js。
- 公众号 专注于Node.js相关技术栈的研究分享,包括基础知识、Nodejs、Consul、Redis、微服务、消息中间件等,如果大家感兴趣可以给予关注支持!
未完待续,持续更新中。。。

