常见的node框架express、koa,egg,学习哪个比较好?

2021-02-18 17:03发布

常见的node框架express、koa,egg,学习哪个比较好?

常见的node框架express、koa,egg,学习哪个比较好?

15条回答
三岁奶猫
2楼 · 2021-02-19 13:11

对于新入门的小伙伴来说,选择一个合适的nodejs框架可能是一件很头疼的事情,我最初也为这个头疼过,下面分享一下我的框架选择之路

nodejs的框架

最近来node的火热,带动了一大批的框架,例如

express koa sails loopback thinkjs egg

这些是我比较过的框架,下面依次做个简单介绍

express

这个是使用最多的框架,也是各个推荐新手入门的框架。

Express 不对 Node.js 已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的基本功能(个人感觉相当于node中的jquery)

封装了路由 静态资源托管 中间件的概念 内置了jade,ejs模板引擎

个人评价,express适合小型项目,不适合大型企业级项目,个人用用还可以,做为快速入门是个很好的选择,用过之后就可以考虑进入 koa 框架的道路

koa2

koa 是比 express 思想更先进的框架,是express原班人马打造

koa解决的最大问题,利用async await的新语法特性,解决回调地狱的问题

koa 与 express 最大的不同,个人觉得有3点:

1.在于 handler 的处理方法,express 是普通的回调函数, koa 是利用ES7 中 Async/Await 的特性,没有回调,没有回调,就大大加速了开发速度这一点而言,已经足以让我们跪舔了

2.koa是洋葱中间件模式,执行到next的时候,会去调用下一个中间件,下个中间件执行完再接着执行上个中间件next下面的代码

3.koa把 request, response 封装到了同一个上下文对象 content

最为express的进化,确实带来更好的开发效率,成本只需要学西一下async await的新语法特性。可以说作为express框架的进阶框架是非常好的了

后面的这几个都是企业级框架

express =》koa 之后,最大的问题就是开发项目的时候缺少约束,单人开发还好,多人的时候,各种目录结构,各种包的选择,百花齐放的代码风格。都是团队开发头疼的事情。

因为本人之前做过php开发,laravel框架的使用起来很舒服(优雅!),还有配套的laravel-admin。所以一直想找一个能像laravel这样的node框架提高开发效率

回到正题,sails , loopback, thinkjs, egg 都是企业级框架,我们又该如何选择

Sails 是基于 exrpess 的大而全的框架,MVC框架,旨在模拟熟悉的Ruby on Rails框架的MVC模式,但支持现代应用程序的需求。捆绑了一个强大的ORM,即Waterline。自动生成的REST API

LoopBack 是建立在 Express 基础上的企业级 Node.js 框架,只需编写少量代码就能创建动态端到端的 REST API,一致化的模型关系和对 API 访问的权限控制等

ThinkJS 是国内360团队推出的一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单、高效。框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能

Egg.js是《阿里旗下产品》基于Node.js 和 Koa的一个Nodejs的企业级应用开发框架,它可以帮助开发团队及开发人员降低开发和维护成本。Egg.js则是按照约定进行开发,奉行『约定优于配置』,具备提供基于Egg定制上层框架的能力、

高度可扩展的插件机制、内置多进程管理、基于Koa开发,性能优异、框架稳定,测试覆盖率高、渐进式开发、开发成本和维护成本低等特点。个人结论:

个人最终选择了 Egg 框架,当然其他都是很好的框架,但是我在分别用这4个框架新建了项目之后,更喜欢Egg框架。

首选,egg是基于 koa2 的,async的特性让我们避免了回调地狱。洋葱式的中间件架构让我们更容易后置逻辑,内置的多进程管理会帮我们更好的利用服务器性能。更方便的单元测试,更加约束的目录架构

推荐新手的进阶之路是:express -> koa -> egg


猫的想法不敢猜
3楼 · 2021-02-18 19:56

一般现在大多数的培训机构的课程都会学习这几个的,都需要去掌握了解没有必要去纠结学不学那个

小王霸
4楼 · 2021-02-19 09:10

Express 是使用 Node.js 开发的传统 Web 框架,提供了 web 开发需要的路由、模板引擎、MVC、Cookie、Session 等功能,支持通过中间件拓展,上手简单,功能强大,是目前最流行 Node.js Web 框架

Koa 目标和 Express 一致,相比于 Express 有两几个显著变化

  1. 中间件使用洋葱模型,让中间件代码根据 next 方法分隔有两次执行时机

  2. 几乎不再内置任何中间件,把控制权和复杂度交给了开发者

  3. Koa 1 通过 generator、koa 2 通过 async/await 语法,让 web 中高频出现的异步调用书写简单

彭彭彭
5楼 · 2021-02-19 10:06

Express是一个最小且灵活的Web应用程序框架,为Web和移动应用程序提供了一组强大的功能,它的行为就像一个中间件,可以帮助管理服务器和路由;Koa 是一个新的 web 框架,由 Express幕后的原班人马打造,致力于成为web应用和API开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa帮你丢弃回调函数,并有力地增强错误处理Koa并没有捆绑任何中间件而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

Express 是使用 Node.js 开发的传统 Web 框架,提供了 web 开发需要的路由、模板引擎、MVC、Cookie、Session 等功能,支持通过中间件拓展,上手简单,功能强大,是目前最流行 Node.js Web 框架

Koa 目标和 Express 一致,相比于 Express 有两几个显著变化

  1. 中间件使用洋葱模型,让中间件代码根据 next 方法分隔有两次执行时机

  2. 几乎不再内置任何中间件,把控制权和复杂度交给了开发者

  3. Koa 1 通过 generator、koa 2 通过 async/await 语法,让 web 中高频出现的异步调用书写简单


yyy
7楼 · 2021-02-19 16:40

express

这个是使用最多的框架,也是各个推荐新手入门的框架。

koa 是比 express 思想更先进的框架,是express原班人马打造

koa解决的最大问题,利用async await的新语法特性,解决回调地狱的问题


啦啦啦
8楼 · 2021-02-20 10:23

Express 是使用 Node.js 开发的传统 Web 框架,提供了 web 开发需要的路由、模板引擎、MVC、Cookie、Session 等功能,支持通过中间件拓展,上手简单,功能强大,是目前最流行 Node.js Web 框架

Koa 目标和 Express 一致,相比于 Express 有两几个显著变化

  1. 中间件使用洋葱模型,让中间件代码根据 next 方法分隔有两次执行时机

  2. 几乎不再内置任何中间件,把控制权和复杂度交给了开发者

  3. Koa 1 通过 generator、koa 2 通过 async/await 语法,让 web 中高频出现的异步调用书写简单


可口可乐
9楼 · 2021-02-21 23:30

Express 是使用 Node.js 开发的传统 Web 框架,提供了 web 开发需要的路由、模板引擎、MVC、Cookie、Session 等功能,支持通过中间件拓展,上手简单,功能强大,是目前最流行 Node.js Web 框架Koa 目标和 Express 一致,相比于 Express 有两几个显著变化

  1. 中间件使用洋葱模型,让中间件代码根据 next 方法分隔有两次执行时机
  2. 几乎不再内置任何中间件,把控制权和复杂度交给了开发者
  3. Koa 1 通过 generator、koa 2 通过 async/await 语法,让 web 中高频出现的异步调用书写简单


相关问题推荐

  • PHP与Node.js的区别2021-01-18 10:23
    回答 19

    PHP胜出:代码与内容混合大家在输入的过程中当然希望能将自己的思路直接转化为网站的文本内容,同时还要为进程添加分支、一部分if-then语句以保证站点拥有漂亮的视觉效果,具体取决于URL中的某些参数。又或者,我们希望能够利用单一数据库将文本或者数据加以...

  • 回答 9
    已采纳

    这个问题涉及到的是整个web开发体系的变更。我尽量长话短说,有问题可以继续留言。现在的web开发体系可以说是在15年后才逐渐形成,因为15年比较特殊,html5和ES6都是在这一年发布,css3的最后一次更新在2014年。这些变更带来的变化是产生了前后分离的开发方式...

  • 回答 3

    初次接触nodejs确实有一些难度,因为思路语法都和js有了一些差别,属于后端思想,所以需要楼主多下功夫,进行系统学习之后就容易接受了

  • 回答 13

    //首先卸载已安装的node-sasscnpm uninstall node-sass//重新安装cnpm install node-sass//如果报关于gyp的错,安装相关的gyp编译环境npm install -g node-gyp//再重复执行以上的卸载安装步骤//安装完成启动项目试试npm run dev...

  • 回答 10

    node.js 和 javascript 从本质上来说没有什么区别,语言是一样的,都是javascript语言编写。但是,node.js 主要从事后台操作,javascript主要操作HTML的元素(前端)。

  • 回答 8

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。(事件驱动:事件触发过程中,进行决策的一种策略,简单说就是跟随当前时间点上出现的事物,调用可用的资源进行解决该事物...

  • 回答 10

    global 最根本的作用是作为全局变量的宿bai主。按照ECMAScript 的定义,满足以下条 件的变量是全局变量:在最外层定义的变量;全局对象的属性;隐式定义的变量(未定义直接赋值的变量)。当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦...

  • 回答 4

        webpack构建工具是基于node平台的, 所以在安装之前必须先安装nodejs. 接在来就可以通过npm包管理工具在线安装webpack了.    对于webpack构建工具, 即可全局安装, 也可以局部安装. 一般情况下,大多数会采用局部安装, 因为每一个项目需要对webpack...

  • 回答 3

    vue-cli脚手架是基于node平台的, 所以安装之前, 必须先安装nodejs. 之后直接通过npm包管理工具即可完成vue-cli脚手架工具的安装. 目前市面上流行的vue-cli脚手架有两个版本, 接下来分别演示下:安装vue-cli-2.x版本// -g 表示全局安装 npm install vue-cli...

  • 回答 3

    1.打开node官网 https://nodejs.org/en/,选择 other Downloads,2.安装Windows Binary 64位或者32位3.将你减压后的路径保存一份,如(D:\soft\node-v10.16.3-win-x64)4.找到系统路径(控制面板-》系统-》高级系统设置-》环境变量-》path),获取到 5.找到...

  • 回答 5

    一、安装环境1、本机系统:Windows 10 Pro(64位)2、Node.js:v6.9.2LTS(64位)二、安装Node.js步骤1、下载对应你系统的Node.js版本2、选安装目录进行安装3、环境配置4、测试

  • 回答 4

    Node.js是一个基于Chrome v8引擎建立的JavaScript运行平台,用于搭建响应速度快、易于扩展的网络应用。本文和大家分享的是Node.js的一些特点,希望对大家有帮助。  异步I/O  这里,我们来详细解释一下:  异步是什么意思  比如说你的爸,今天要叫你做...

  • 回答 5

    dejs适用于I/O密集的应用,而不太适用于计算密集的应用我用 Node.js 开发了 Am I Hacked,算是有一点用 Node.js 支持大流量的经验。先列一些数字服务器是 Linode 512,也就是 Linode 上最低端的。...

没有解决我的问题,去提问