之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了。
再到后来是因为Settings-Sync插件二次开发,我需要用node.js造一个mock server,而当时在开源项目上找到一个模拟github rest api的node.js服务端程序,然后我就在此基础上开发。从工作中学习有应用场景有目的性,果然还是学的要快很多。

今天之所以要说一说node.js的十大Web框架,主要是觉得以后针对VsCode开发或者是我自己的项目,用Node.js可能会比较多,比如我将我的博客系统一步一步完善,我想尝试微服务的很多种实践方式,其实很多企业用微服务,还有一个原因就是不受编程语言的制约。

大前提:框架无优劣之分,只有在某个应用场景是否更适合和更好。

一、Node.js开发框架Sail.js

Sail.js官网地址为:https://sailsjs.com/
github地址:https://github.com/balderdashy/sails

Sails可以轻松构建自定义的企业级Node.js应用程序

在几周内而不是几个月内构建实用的,生产就绪的Node.js应用程序。Sails是Node.js最流行的MVC框架,旨在模拟Ruby on Rails等框架的熟悉MVC模式,但支持现代应用程序的需求:具有可扩展性,面向服务的体系结构的数据驱动API。

优点如下:
(1)100%JavaScript
在Sails自上构建意味着你的应用程序完全使用JavaScript编写,从这里可以看出浏览器兼容性良好;
(2)任何数据库
Sails捆绑了一个功能强大的ORM,即Waterline,它提供了一个简单的数据访问层,无论你使用什么数据库,它都能正常工作;
(3)自动生成的Rest API
Sails附带的蓝图有助于在不编写任何代码的情况下快速启动应用程序的后端;
(4)前端不可知
Sails与任何前端兼容:Angular、React、IOS、Android、Windows Phone,自定义硬件或其他完全兼容;
(5)轻松WebSocket集成
由于Sails会为您转换传入的套接字消息,因此它们会自动与Sails应用中的每个路由兼容;
(6)专业支持
Sails提供商业支持,以加速开发并确保代码职工的最佳实践;

二、Node.js服务端框架 Hapi.js

官网地址为:https://hapijs.com/

如何创建一个Hapi.js?请参考如下步骤(均来自官网示例):
1.初始化

npm init

2.安装库

npm install hapi --save

3.编写js

'use strict';

const Hapi=require('hapi');

// Create a server with a host and port
const server=Hapi.server({
host:'localhost',
port:
}); // Add the route
server.route({
method:'GET',
path:'/hello',
handler:function(request,h) { return'hello world';
}
}); // Start the server
const start = async function() { try {
await server.start();
}
catch (err) {
console.log(err);
process.exit();
} console.log('Server running at:', server.info.uri);
}; start();

4.运行

npm start

三、Node.js 高性能封装 Express.js

关于这个可以参考我的这篇博客:https://developers-youcong.github.io/2019/02/22/node-js%E4%B9%8Bexpress%E6%A1%86%E6%9E%B6/

四、Node.js Web框架 Kraken.js

Kraken 基于 express 构建,实现对环境变量的感知、动态配置、高级中间件和应用生命周期的事件通知。

官网地址为:http://krakenjs.com/

示例例子:

'use strict';

var express = require('express'),
kraken = require('kraken-js'); var app = express();
app.use(kraken());
app.listen();

五、Web应用构建平台 Meteor

Meteor是一组新的技术用于构建高质量的Web应用,提供很多现成的包,可直接在浏览器或者云平台运行。
官网地址为:https://www.meteor.com/

优点如下:
(1)使用更少的代码运送更多
由于集成的JS堆栈从数据库扩展到最终用户的屏幕,因此可以在10行中完成1000行.

(2)为任何设备构建应用程序
无论是针对Web、IOS、Android还是桌面进行开发,都使用相同的代码。热门推送新功能,无需应用商店批准或者强制用户下载新的原生应用.

(3)集成已有的技术
使用流行的框架和工具,开箱即用。专注于构建功能,而不是自己将不同的组件连接在一起。

六、全栈JavaScript 开发架构 Mean.js

官网地址为:http://meanjs.org/

1.什么是Mean.js

MEAN.JS是一个全栈JavaScript的解决方案,可帮助您使用MongoDB、Express、Angular和Node.js构建快速,健壮且可维护的生产Web应用程序.

2.为何选择Mean.js
Mean.js将帮助你入门并避免无用的笨拙工作和常见陷阱,同时保持你的应用程序井然有序。我们目标是创建和维护一个简单易读的开源解决方案,你可以使用它并信任它。

3.入门
入门请参考官方文档:http://meanjs.org/docs.html

七、Node.js的Web框架 Koa.js

Koa是下一代的Node.js的Web框架。由Express团队设计。旨在提供一个更小型、更富有表现力、更可靠的Web应用和API的开发基础。
Koa可以通过生成器摆脱回调,极大地改进错误处理。Koa核心不绑定任何中间件,但提供了优雅的一组可以快速愉悦地编写服务器应用的方法。
关于koa可参考:https://www.npmjs.com/package/koa

八、Node.js CMS 和 Web 应用程序平台 KeystoneJS

KeystoneJS,以 Express 和 MongoDB 为基础搭建的 Node.js CMS 和 Web 应用程序平台。

官网地址为:https://keystonejs.com/

具有以下特性:

Express.js 和 MongoDB:Keystone 会为你配置 express(node.js 上的 Web 服务器),用 Mongoose(领先的 ODM 包)连接你的 MongoDB 数据库

动态路由:Keystone 从设置 MV* 程序的最佳实践入手,让你管理模板、视图和路由变得更容易

数据库域:ID、String、Boolean、Date 和 Number 是数据库的构件。Keystone 以它们为基础实现了在现实工作中更实用的域类型,比如 name、email、password、address、image 和 relationship (及其它)

自动生成管理员界面:不管你在搭建应用程序,或者在生产环境中作为数据库内容管理系统时是否用它,Keystone 的管理员界面都能节省你的时间,让你管理数据更容易

编码更简单:有时即便做的事情简单,异步代码也会变得复杂。Keystone让简单的事情(比如在视图中显示之前加载数据)保持简单

表单处理:要验证表单、上次图片或用一行代码更新数据库?基于你已经定义的数据模型,Keystone 可以做到

会话管理:Keystone 自带了会话管理和认证功能,包括密码域的自动加密

发送 Email:借助 Keystone,你的应用程序可以轻松地设置、预览和发送基于模板的 email。它还集成了 Mandrill (Mailchimp 卓越的事务性 email 发送服务)

九、Node.js 框架组件 flatiron.js

flatiron 是一款 Node.js 和浏览器的框架组件,是一款构建现代化 web 应用适应性很强的框架。flatiron 提供比 Rails 类组件有更丰富配置的框架组件,允许开发者自己添加他们想要的功能组件。
可参考地址为:https://www.npmjs.com/package/flatiron

十、基于 Node.js 的 API 框架 LoopBack

LoopBack 是基于 Node.js 的一个开源的 API 框架,可以让 Node.js 应用方便的跟各种设备通过 API 进行互联。
可参考地址为:https://loopback.io/

本文主要参考除引入的官网外还参考Node.js十大Web框架

 

node.js之十大Web框架的更多相关文章

  1. python 十大web框架排名总结

    0 引言 python在web开发方面有着广泛的应用.鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题.为此,我特此对比较常见的几种框架从性能.使用感受以及应用情况进行一个粗略的分析. 1 D ...

  2. Koa--基于Node.js平台的下一代web开发框架的安装

    koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函 ...

  3. Node.js 从零开发 web server博客项目[日志]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  4. Node.js 从零开发 web server博客项目[项目介绍]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  5. Pomelo:网易开源基于 Node.js 的游戏服务端框架

    Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese

  6. Fenix – 基于 Node.js 的桌面静态 Web 服务器

    Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...

  7. 十大web安全扫描工具

    本文来源:绿盟整理  <十大web安全扫描工具> 十大web安全扫描工具 扫描程序可以在帮助造我们造就安全的Web 站点上助一臂之力,也就是说在黑客"黑"你之前, 先测 ...

  8. Node.js结合Selenium做Web自动化测试

    发现腾讯课堂上有个node.js结合Selenium做Web自动化测试的教学视频, 听来感觉不错,一来老师讲的还不错,二来node.js这门语言会越来越热,学会总没什么坏处,三来发现CukeTest这 ...

  9. Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com

    Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com

随机推荐

  1. 向后台提交数据:通过form表单提交数据需刷新网页 但通过Ajax提交数据不用刷新网页可通过原生态Ajax或jqueryAjax。Ajax代码部分

    原生态Ajax提交表单:需要借助XMLHttpRequest对象的open,要收通过post发送请求还要setRequsetHeader,然后把数据发送给后端,代码如下 目录结构 index.py代码 ...

  2. Sublime Text 2 2.0.2 序列号

    ----- BEGIN LICENSE -----Andrew WeberSingle User LicenseEA7E-855605813A03DD 5E4AD9E6 6C0EEB94 BC9979 ...

  3. 个人练习:使用HTML+CSS制作二级菜单

    最近一直在学习HTML+CSS,刚看完如果制作下拉菜单部分,就想着做一个练练手. 先上成品图: 就是上面这个效果,横向菜单选项能点击,鼠标放在上面也能展开二级菜单,二级菜单也能点击,点击后就会在底下的 ...

  4. iphone投屏电脑 苹果x用无线充电好不好

    众所周知,苹果新发布的iPhone 8和iPhone X支持无线充电功能,简单说就是在充电时用户只需把它们放到充电板上即可,不再需要插入Lightning线缆.而且如今iphone投屏电脑也是比较受欢 ...

  5. 初见jQuery EasyUI

    本文通过一个简单的小例子,简述jQuery EasyUI的使用方法,仅供学习分享使用,如有不足之处,还请指正. 什么是jQuery EasyUI ? 引用官网的一句话:jQuery EasyUI fr ...

  6. java8中Lambda表达式和Stream API

    一.Lambda表达式 1.语法格式 Lambda是匿名函数,可以传递代码.使用“->”操作符,改操作符将lambda分成两部分: 左侧:指定了 Lambda 表达式需要的所有参数 右侧:指定了 ...

  7. 轻量简单好用的C++JSON库CJsonObject

    1. JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) .是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集.许多编 ...

  8. LeetCode题解之Find Bottom Left Tree Value

    1.题目描述 2.问题分析 使用层序遍历思想 3.代码 int findBottomLeftValue(TreeNode* root) { if (root == NULL) ; queue<T ...

  9. SQLServer2016 AlwaysOn AG基于工作组的搭建笔记

    最近搭建了一套SQLServer2016 AlwaysOn AG. (后记:经实际测试,使用SQLServer2012 也同样可以在Winserver2016上搭建基于工作组的AlwaysOn AG, ...

  10. VS2017做为Unity3D的脚本编辑器需要的最精简组件

    前言 使用VS2017做为Unity的脚本编辑器,需要的最精简组件. 我的测试环境 windows 10 x64 windows 7 x64 sp1 时间:2017-4-22 更新于2018-12-4 ...