Node问题梳理总结
-
-
- 1、koa和express有哪些不同?
- 2、两个Node.js进程如何通信?
- 3、浏览器与Node中的事件循环有什么区别?
- 4、如何实现JWT鉴权机制?说说思路
- 5、Node性能如何进行监控以及优化?
- 6、说说对中间件概念的理解,如何封装node中间件?
- 7、Node文件查找的优先级以及require方法的文件查找策略
- 8、Node中stream的理解?应用场景
- 9、Node中的Buffer的理解?场景
- 10、Node中process的理解,常用方法?
- 11、Node有哪些全局对象
- 12、对node的理解,优缺点,应用场景
- 13、common.js和es6模块中引入的区别
- 14、node单线程还是多线程
- 15、node单线程为什么还能支持高并发
- 16、node如何创建子进程
-
1、koa和express有哪些不同?
express框架是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,主要基于 Connect 中间件,并且自身封装了路由、视图处理等功能。
koa是 Express 原班人马基于ES6 新特性重新开发的框架,主要基于 co 中间件,框架自身不包含任何中间件,很多功能需要借助第三方中间件解决,但是由于其基于 ES6 generator 特性的异步流程控制,解决了 “callback hell” 和麻烦的错误处理问题。
相同点:两个框架都对http进行了封装。相关的api都差不多,同一批人所写。
不同点:
-
express内置了许多中间件可供使用,而koa没有。
-
express包含路由,视图渲染等特性,而koa只有http模块。
-
express的中间件模型为线型,而koa的中间件模型为U型,也可称为洋葱模型构造中间件。
-
express通过回调实现异步函数,在多个回调、多个中间件中写起来容易逻辑混乱。
总结
Express
优点:线性逻辑,通过中间件形式把业务逻辑细分、简化,一个请求进来经过一系列中间件处理后再响应给用户,清晰明了。
缺点:基于 callback 组合业务逻辑,业务逻辑复杂时嵌套过多,异常捕获困难。
Koa
优点:首先,借助 co 和 generator,很好地解决了异步流程控制和异常捕获问题。其次&