10 Node Frameworks to Use in 2019

原文

https://scotch.io/bar-talk/10-node-frameworks-to-use-in-2019

 

node Framworks列表:

http://nodeframework.com/

框架类型:

  • MVV frameworks:
    • Sinatra-like: 提供丰富的配置,比Rails-like or full-stack更少的选择opinionated
    • Rails-like:使用提供的template,创建自己的app
  • Full-Stack frameworks:  Node.js真正的闪光之处。绑定scaffolding, template engines, websockets和persistence libraries,让你实时的扩展web apps.
  • Rest api frameworks: 配合前端mvc框架。

 

摘译:

 

越来越多的开发者转向使用JavaScript来建立更多的app,特别是web。

 

当Node.js在2009年被介绍,作为一个工具,建立可扩展的服务端web app。

它带来了大量优势,包括并不限于事件驱动event-driven non-blocking input/output model, single-threaded asynchronous编程。

 

多年过来,大量有经验的js开发者已经建立了许多框架,用来更容易的使用Node.js开发web程序。

进入2019, 我列出一些著名的Node.js框架,你可以考虑使用它们,来建立web app。

 

What is a Node framework?

A Node.js framework是一些抽象的设计,使用Node.js建立。它包括了给出的框架设计的控制流。

所以,它就像是一个程序的骨骼skeleton。你客制代码就像填肉,最终完成程序。

因此对每个Node.js function, 会有一些普通的执行给这个框架there would be some generic implementation unique to the framework ,之后,框架需要使用者跟随框架的指导来增加更多的代码,用于定义它的使用case。

 

Benefits of Node frameworks

因为Node.js frameworks的生产率productivity,速度speed,scalability扩展性,让它们成分第一的选择来为公司建立企业级别的applications。

 

Node.js让你在前后端使用相同的语言,节省了学习一门新语言的压力,只需一些简单的配置implementation,也帮助你始终维护相同的编码pattern。

 

通过使用一个框架,你可以和一些工具,指导,和推荐的practices一起工作,帮你省时间。

也可以固定化一个团队的编码标准。

 

Selecting a Node Framework

选择一个框架有些困难和主观。这是因为我们的选择基于我们喜欢的某个特点。

从程序的框架重量,速度,简单化,学习曲线,灵活性,配置,使用案例,甚至是一些案例的知名程度,GitHub stars。

 

之后让我们深度挖掘这个主题,看看Node.js框架的名单。这有助于你开发js程序的生产率,特别是server-side。

 

Stars不代表所有,我们将按照Scoth.io上的知名程度逐个讨论。

 

 AdonisJs [GitHub Stars: 5,053] (Rails-like)

支持:ORM。SQL query容易学习 ,可以快速建立简单的query.

支持:No-sql数据库: 如MongoDB。 使用MVC结构。

学习的相关:https://scotch.io/tutorials/building-a-web-app-with-adonisjs

 

 Express.js [GitHub Stars: 41,036] (Sinatra-like)

Express.js is a fast, non-opinionated, minimalist web framework for Node.js.

快速的,非固执的 , 极简主义的开发网页框架。它是用Node.js建立的简单技术,行为像一个软件,帮助管理servers和routes.

着眼于异步的原生的Node.js, 实时上Express.js是由node建立的。

有能力来建立一个轻量化的程序,这个能力能够处理超过一个的单一的请求,这个能力依赖服务器能的技术。如express。

robust API,让使用者配置routes以便发生/接收请求,在嵌套和数据库(HTTP server framework)之间。

一个大的优势,它支持大量的其他包和模版引擎,如 Pug, Mustache, EJS等等。

  • Almost the standard for Node.js web middleware

  • Fully customisable

  • 低学习曲线
  • Majorly focused on browsers, making templating and rendering an almost out of the box feature.

作者不认为短期内会过期。

 

Meteor.js [GitHub Stars: 40,490] (full-Stacknes   )

 a full-stack JavaScript platform, 开发现代web和移动 app。(🌠流星)

主要优势是实时更新。当变化发生在web app, 它自动更模版的最新改变。

 

通过提供一个平台给全部的层的app放在一个相同的语言JavaScript内,Node.js框架让开发被简化。

让它的函数在服务器端和客户端都可以有效。

 

Meteor有能力服务大型project。如reaction commerce。

最fascinating方面Meteor framework最令人着迷的方面是它有非常丰富的和组织的文档/大型社区 ,能够帮助使用者快速的学习(伸出手,很快地让他们参与到项目中来),非常块。

reaching out and getting their hands dirty with projects, very fast.

 

本文作者强调必须关注的框架,否则会被逮捕arrested。

 

Nest.js [GitHub Stars: 10,128] (RESTFUL-api)

用于建立高效率的可扩展的scalable的服务器端程序。

Nest uses progressive JavaScript and is written with TypeScript.

因为使用TypeScript,所以strong typing,并且combines elements of OOP(Object Oriented Programming), FP(Functional Programming) and FRP(Functional Reactive Programming).

 

Nest也使用了express, 它提供了开箱即用的一个程序architecture结构,允许天生的创建可高度测试的,可扩展,loosely coupled松耦合的,容易地维护的程序。

 

Nest CLI能够生产nest.js程序,有很多功能开箱即用。

框架开发团队提供支持。

作者也认为需要加入2019的关注名单。

 

Sails.js [GitHub Stars: 19,887] (Rails-like)

用于建立企业基本的Node.js app。它自夸是最著名的MVC node.js 框架,并支持现代app 需求。

API是data-driven, 和可扩展的服务导向的结构。

 

支持几乎所有的数据库。

看后端,只需运行一行安装命令,sails blows your mind by providing you some basic blueprints,无需你写任何代码了。

This command provides you endpoints to CRUD bookstore. 

Sails提供所有前端技术的兼容:React, Angular, Backbone, iOS/objective C, Android/java, windows phone等等。

  • Many automated generators.

  • Requires no additional routing

  • Great frontend compatibility with other frontend technologies.

  • Transparent support for Websockets.

  • Enables faster build of REST API.

  • Compatible with almost all database, thanks to its waterline ORM.

For this one, 2019 it is!

 

Koa.js [GitHub Stars: 23,902] (Sinatra-like)

Referred to as the next generation web framework for Node.js(according to the website), Koa was created by the same team that created Express.js, making it seem like it would pick up from where express left off. 

下一代Node.js的web框架,由开发Express.js的团队创建,似乎捡起了express忽略的方面。

Koa是唯一的使用ES6的方法的框架。甚至一些方法在一些浏览器还不支持。

它允许你无需回调工作,提供你一个巨大的增长在错误处理方面。

 

koa没有在核心上绑定任何软件,意味着软件是更流线的streamlined,每条代码线都是十分的elegant和granular(颗粒的),因此允许你建立你想要的部分

( allowing you to structure the parts however you want(component-based middlewares). 

让框架有更多的控制,在配置和处理方面。

This makes the framework to have more control over configurations and handling.

 

koa可能会抛弃异步功能回调callbacks。

Koa became futureproof owing to the fact that it could actually ditch the holy grail of asynchronous functionality: callbacks.

 

关键的功能:

  • Ditched callbacks hell 扔掉回调地狱

  • Component-based building blocks 基于组件建立块

  • Cascading middlewares 流动的层叠的软件。

  • Quite modular 模块化

  • Efficient error handling  有效的❌处理机制。

未来的绝对框架,本文作者认为到2020年它也会出现在关注框架名单内。

 

LoopBack.js [GitHub Stars: 11,985]  (REST API)

an easy-to-use CLI and a dynamic API explorer.

允许你创建models基于你的schema或者动态models.

和REST services兼容,兼容大量的数据库。

Key features:

 

Hapi.js [GitHub Stars: 10,371] (Sinatra-like)

和Expressjs类似,帮助服务器端数据和客户端交互。是一个Express的替代品(2者都有各自的唯一features)

作者,虽然没有Express知名,但也赢得了一些用户。

 

posted @ 2019-01-07 10:36  Mr-chen  阅读(337)  评论(0编辑  收藏  举报