nest.js,egg.js,midway,express,koa的区别小结
作者:csdn_haow
前言
随着nest.js框架逐渐火起来,对于没有接触过nest的小伙伴可能会疑惑nest是什么?在你了解了nest.js是什么的前提下,你可能会疑惑nest.js与传统的koa、express有什么区别?针对这两个问题,结合了网上的一些文章,做一个简单的总结。
nest是什么?
nest的定义是一个渐进式的Node.js框架,用于构建高效,可靠和可扩展的服务器端应用程序;不要问我为什么要放图,据说放图可以提高访问量。
nest是一个封装了node的有规范的框架,什么是有规范?意思是必须按照它制定的一套规则来写代码,否则程序就会无法运行。上手成本稍高一点,但是后期维护与扩展会很方便。
nest属于前端ts大趋势下深度使用注解特性并提供各种增强开发体验的框架,它提供了一套完整的解决方案,包含了认证、数据库、路由、http状态码、安全、配置、请求等开箱即用的技术。
nest.js与koa、express有什么区别?
koa是一个拥有洋葱模型中间件的http处理库,一个请求,经过一系列的中间件,最后生成响应。Koa的大致实现原理:context上下文的保存和传递,中间件的管理和next方法的实现。
大概过程:我们koa常用的app.use方法就是将一系列中间件的方法存进了一个数组,app.listen底层用http.createServer(this.callback())进行封装,传进createServer的回调函数通过compose来处理中间件集合(就是递归遍历中间件数组的过程),通过req,res(这两个对象封装了node的原生http对象)创建上下文,并返回一个处理请求的函数(参数是上下文,中间件集合(类似一个链表))。
区别
koa本身几乎不带任何其他的库,如果需要使用路由、错误处理、认证等功能需要自己安装并引入,什么都需要自己DIY。而使用nest.js时就不需要考虑这些问题了,依赖注入,pipe,guard,interceptor等机制,基本覆盖各种开发需要,开箱即用。
koa常常与express一起比较,都是偏底层的无态度的Web框架;而nest.js应该和egg.js,midway这种框架比较。egg.js源于阿里,它的企业级规范很多,但各方面能力极强,定位是框架的框架,其再上一层还有midwayjs,完全兼容ts,支持注解,一点都不输与Nest;此外国内做企业级NodeJS框架的越来多啦,比如刚出来的daruk等,用过Java Spring 框架和 Angular的同学会发现NEST借鉴了两者很多的特性。
egg.js是在koa的基础上做了一层很好的面向大型企业级应用的框架封装,现在也有了非常好的TS特性支持。egg.js更多的是按照洋葱模型的开发方式,和AOP编程还是有点区别的。而nest配合TYPEORM可以在node下拥有不输SPRING的面向切面编程的体验~
中小型项目推荐egg.js,上手快,概念易懂;大型项目不妨试试NEST.js+typeorm。如果你需要使用一些技术,例如认证、数据库等支持,那么你可能得去搜索、折腾一番,才能知道搭配哪个库,才行。
到此这篇关于nest.js,egg.js,midway,express,koa的区别小结的文章就介绍到这了,更多相关nest.js,egg.js,midway,express,koa内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!