原文

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。(

10 Node Frameworks to Use in 2019的更多相关文章

  1. Node.js权威指南 (10) - Node.js中的错误处理与断言处理

    10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 ...

  2. JavaScript基础10——node对象

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 10.Node.js核心模块

    1.全局对象2.常用工具3.事件机制4.文件系统访问5.HTTP服务与客户端 一.全局对象(Global Object), 与window对象一样 process ==> 全局变量, 描述当前N ...

  4. 10 —— node —— 获取文件在前台遍历

    思想 : 前台主动发起获取 => ajax 1,前台文件 index.html <!DOCTYPE html> <html lang="en"> &l ...

  5. k8s Kubernetes v1.10 最简易安装 shell

    k8s Kubernetes v1.10 最简易安装 shell # Master 单节点快速安装 # 最简单的安装shell,只为快速部署k8s测试环境 #环境centos 7.4 #1 初始化环境 ...

  6. node.js操作数据库之MongoDB+mongoose篇

    前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件 ...

  7. node.js安装和配置(windows系统)

    node.js安装和配置(windows系统) node javasript vscode  node是javascript的管理工具,所以开发javasript项目都要下载安装和配置node. 传送 ...

  8. (翻译)《Hands-on Node.js》—— Introduction

    今天开始会和大熊君{{bb}}一起着手翻译node的系列外文书籍,大熊负责翻译<Node.js IN ACTION>一书,而我暂时负责翻译这本<Hands-on Node.js> ...

  9. JavaScript高级程序设计(第三版)学习笔记8、9、10章

    第8章,BOM BOM的核心对象是window,具有双重角色,既是js访问浏览器的一个接口,又是ECMAScript规定的Global对象.因此,在全局作用域中声明的函数.变量都会变成window对象 ...

随机推荐

  1. 指针delete之后赋值为null

    1.现象 经常看到有些代码在delete之后赋值为null 2.原因 C++标准规定:delete空指针是合法的,没有副作用. 所以我们在Delete指针后赋值为NULL或0是个好习惯.对一个非空指针 ...

  2. How to install Maven on Windows

    To install Apache Maven on Windows, you just need to download the Maven’s zip file, and Unzip it to ...

  3. CICD 基础

    代码测试覆盖率 最近在负责相关插件的集成,今天第一次接触到"代码覆盖率"这个概念,那么,就做些简单的笔记吧. 好文 如何提高一个研发团队的"代码速度"? 代碼覆 ...

  4. 算法总结(转自CS-Notes)

    转载地址: 注意要点: 1.希尔排序:实际是将元素按步距h分为几组,每组元素没有关系,是组里每个元素跨步距h得到的一组元素是有序的,那么剩下的问题就是组内有序,再处理好组间边界即可.实际解决的方式是不 ...

  5. (转)Spring Cloud(二)

    (二期)23.微服务框架spring cloud(二) [课程23]熔断器-Hystrix.xmind0.1MB [课程23]微服务...zuul.xmind0.2MB 熔断器-Hystrix 雪崩效 ...

  6. Css下拉菜单设置

    <style type="text/css"> *{margin:0px;padding:0px;}设置所有标签属性<初始化页面属性> #nav{backg ...

  7. P1494 [国家集训队]小Z的袜子(莫队算法)

    莫队板子 代码 #include <cstdio> #include <algorithm> #include <cstring> #include <cma ...

  8. MySQL GROUP BY语句

    GROUP BY 语句根据一个或多个列对结果集进行分组 在分组的列上我们可以使用COUNT.SUM.AVG等函数 SELECT column_name,function(column_name) FR ...

  9. mapgis IGServer账号

    2064803644@qq.com 1576391020@qq.com 密码一样

  10. Oracle spatial、openlayers、geoserver开发地理信息系统总结

    感谢开源,使用OpenLayers+Geoserver的地理信息系统开发很简单,完全可以套用开发MIS系统的经验,我这里总结为三个步骤: 1.数据准备 2.数据发布 3.数据展现 我将按照这个思路来介 ...