Skip to content

Node 导航

我生来就是高山而非溪流,我欲于群峰之巅俯视平庸的沟壑。

我生来就是人杰而非草芥,我站在伟人之肩藐视卑微的懦夫。

作为前端,肯定不满足于只做前端,当有了 Node 后,我们不仅限于做前端,还有后端这星辰大海。要成为 Node 后端程序员,需要掌握什么知识点呢

个人认为作为一名程序员,不要限制于我是什么端的程序员,而应是我是人杰,关于实现功能,我要做什么,我需要,写后端代码,部署、运维,也能写 bash 脚本跑定时任务, 总之,是有什么需求,就能完成的那种

扯远了,要学习 Node.js 必须要了解 JavaScript,有关 JavaScript 基础知识点笔者就不阐述,想深入了解的不妨看看笔者之前写的 深入理解 JavaScript 系列

就 Node.js 工程师而言,个人认为需抓两方面,一是 Node.js 的基础(核心)部分,如各种内置模块使用,理解异步I/O...

二是应用开发部分,不仅仅是 Web 框架开发,Node 还能做很多事情,例如脚手架搭建、爬虫、微服务、数据库MySQL、缓存Redis、消息队列RabbitMQ、搜索引擎ElasticSearch 等等,当然,Web 框架开发是重点,而且框架方面笔者只讲Express、Koa2、NextJS

因为笔者的学习方法是边做边学(learn by making),所以文章中涉及的知识点会一笔带过,相关知识会另写文章超链接过去,如对数据库的介绍(Mysql、MongoDB、Mongoose)、RESTful、会话和 Cookie、JWT 等。简单来说,就是做项目为主,知识点随着项目的完善慢慢补充进去

笔者知道,这体量是很大的,笔者也只是做自己的笔记,而非以教授知识为主,只是记录笔记罢了

学习笔记目录

Node 基础部分

  • [基础架构](./Node 走马观花.md)

    • http、fs、url
    • 操作数据流
    • 子进程
  • [包管理器](./NPM 包管理器,md)

  • [命令行](./用 Node 搭建最小实现脚手架.md)

  • 构建工作(webpack、rollup、vite 的本质)

应用开发部分

为什么学 Node

官方网站

Node.js 最佳实践:https://github.com/goldbergyoni/nodebestpractices/blob/master/README.chinese.md

NodeSchool:https://nodeschool.io/zh-cn/

awesome:https://github.com/sindresorhus/awesome-nodejs

书籍推荐

Node.js实战(第2版)

教程

牛人

TJ:熟悉前端的人都知道他

  • 开源狂魔:开源几百个 npm 包
  • 异于常人的勤奋:曾经1年10000多commit
  • express 和 koa 的作者
  • 后来创建公司去搞 Go 了,不过他的传说一直留在前端界

如何学习

之前的学 ruby 时不能实现的一点在于,国内的ruby社区圈子太小,ruby-china、知乎、掘金、思否等找了一圈,都没看到有人有相关的技术问题,但 node 在国内都受欢迎多了,所以在学习的过程中,尽量多的关注和回答相关问题,在回答的同时就是在学习

用 nodejs 写个 tree

用 nodejs 写个 curl

再写个 mkdir -p a/b/c/d/e/f

用 node 写命令行

我的学习路径

小项目入手,然后中项目,再搞个大项目,小项目只专注一个知识点。

  • 如小项目是做个爬虫,爬下来就好

  • 如小项目是学 Express 开发,跟着做完就好了

  • 如小项目是部署,把项目部署上去就好

然后是中项目,中项目是从零到有的过程

如做 realworld 项目,有十几个接口,七八个页面,小细节也不少。从开始做,到部署上线,完成,说明 Node.js 入门了

接着是大项目,个人认为做个类似 bailiccangdu 的 ele 项目就算大项目吗,六十多个接口,四十五个页面,工程量之大,如果能吃下来,如果我是面试官,会觉得你有两把刷子

参考资料