当前位置:首页 > 技术分析 > 正文内容

推荐几款Nodejs实现的web框架(nodejsweb服务器框架)

ruisui883个月前 (02-03)技术分析16

Nodejs在近些年可以说是发展异常的迅猛,由于同样使用的js原因,对于前端开发人员可以说是非常的友善了,Github上有关nodejs的贡献也是越来越多,像是阿里的expresskoa极大的优化了我们的开发工作,今天我就整理筛选了部分的Nodejs Web框架提供给大家挑选,如果有遗漏或者错误的,希望大家可以在评论区指正提出,我也会根据评论内容及时更正修改。

1、KOA

KOA属于Node.js MVC框架系列,其中MVC代表模型 – 视图 – 控制器。MVC的三个组件是作为应用程序数据的模型,视图是通过app UI的数据表示,控制器在模型和视图之间传递请求和更新。KOAMVC阶段可以说是助力了国内大多数框架的发展,类型eggjsthinkjs均脱胎于KOA,而且值得一提的是目前国内最火的nodejs框架Express也是由KOA原班人马打造。就是怎么每个框架都喜欢说自己是下一代框架,活在当下不好吗?

const Koa = require('koa');
const app = new Koa();

// response
app.use(ctx => {
  ctx.body = 'Hello Koa';
});

app.listen(3000);

2、Express

Express是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。在中国说Express是目前最受欢迎的Nodejs框架也不为过,它的确出色,Express继承了阿里系所有框架该有的有点:清晰出色的文档、完善的社区环境、高度可配合的开发生态。此外,它不需要使用特定的开发实践或特定工具,因此JavaScript开发人员可以获得最大的自由。由不得人不喜欢用。

const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000)

3、Hapi

Hapi 是由沃尔玛技术团队开发的 Web 框架Hapi致力于实现:高性能、高安全性可高度可扩展性的框架。hapi帮助沃尔玛度过了一个个黑色星期五的抢购,其实力可见一斑。

'use strict';

const Hapi = require('@hapi/hapi');

const init = async () => {

    const server = Hapi.server({
        port: 3000,
        host: 'localhost'
    });

    await server.start();
    console.log('Server running on %s', server.info.uri);
};

process.on('unhandledRejection', (err) => {

    console.log(err);
    process.exit(1);
});

init();

4、Fastify

Fastify,快速并且低开销的 web 框架,专为 Node.js 平台量身打造。其设计灵感来自 Hapi Express,致力于以最少的开销和强大的插件结构提供最佳的开发体验。据我们所知,它是这个领域里速度最快的 web 框架之一。

// Require the framework and instantiate it
const fastify = require('fastify')({ logger: true })

// Declare a route
fastify.get('/', async (request, reply) => {
  return { hello: 'world' }
})

// Run the server!
const start = async () => {
  try {
    await fastify.listen(3000)
  } catch (err) {
    fastify.log.error(err)
    process.exit(1)
  }
}
start()

5、Meteor

一个完全统一前后台开发的一站式框架, 从后台数据库到前端view全部包含在内, 特别适合于重度依赖websocketSPA(单页面应用)开发, 国外流行的Asana就是完全采用Meteor框架开发,项目在 GitHub 上有 28K+ 的赞,拥有大量的自定义包,庞大的社区支持,非常好的教程和文档。你可以用它构建纯 Javascript 的实时 Web 和 手机应用。

import { Meteor } from 'meteor/meteor'

// On server startup, if the database is empty, create some initial data.
if (Meteor.isServer) {
  Meteor.startup(() => {
    if (Rooms.find().count() === 0) {
      Rooms.insert({ name: 'Initial room' });
    }
  });
}

6、Primus

Primus,是Transformer的创造者,并且也被称为通用包装器实时框架。Primus里包含了大量的用于Node.js的实时框架,并且它们都拥有各种不同的实时功能。此外,Primus还提供了通用的低级别接口用于各个实时框架之间进行通信。Primus开源,并且托管在Github上。

'use strict';

var Primus = require('primus')
  , http = require('http');

var server = http.createServer(/* request handler */)
  , primus = new Primus(server, {/* options */});

7、Strapi

Strapi是一种灵活的、开放源码的无头CMS,开发者可以自由选择自己喜欢的工具和框架,编辑器也可以轻松地管理和分发内容。通过使管理面板和API可扩展通过插件系统,Strapi使世界上最大的公司加速内容交付,同时建立美丽的数字体验。用一句话来概括:免费开源的Nodejs无头CMS内容管理框架,建立在自定义api。有点像腾讯小程序提供的内容管理系统,可以说是一个集成式的系统。

8、Sail

Sail 作为一个非常稳固的 nodejs 框架,提供了建立任何规模的 web 应用所需要的所有功能功能。

Sail.js 在底层使用了 express框架来提供对 http 请求的处理,同时使用 Socket.IO 框架来处理WebSocket 请求。同时作为一个前端应用开发框架,它允许开发人员选择他/她熟悉的技术来开发应用。

同时 Sail.js 也通过 waterline 框架实现了 ORM 功能。通过这个功能,你的应用程序可以在不进行大的修改的前提下,就可以从一个后端数据库,切换到另外一个后端数据库(也可以是一个NoSQL数据库)。

Sail 特别适合用来开发对数据的实时更新有较高要求的应用,比如多人棋类游戏,单页web应用等等。如果你对 Ruby, Django 或者 Zend 有一定的了解,那么你将非常容易理解Sail中的概念。

简单来说,Sail.js 既给开发者提供了一个优秀的 MVC 框架,也提供了一定的灵活性,让开发者可以自主选择前端开发方式和后端的数据库。 Sail.js 是由 Mike McNeil 创建的,现在由 Treeline and balderdash 提供支持。Sail.js MIT 协议下开源。

还有哪些优秀的Nodejs框架?欢迎大家评论区推荐讨论~

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1137.html

标签: nodejs更新
分享给朋友:

“推荐几款Nodejs实现的web框架(nodejsweb服务器框架)” 的相关文章

红帽最新的企业 Linux 发行版具有解决混合云复杂性的新功能

据zdnet网5月1日报道,红帽这家 Linux 和超云领导者今天发布了其最新的旗舰 Linux 发行版 Red Hat Enterprise Linux (RHEL) 9.4,此前上周宣布对已有十年历史的流行 RHEL 7.9 再支持四年。这个领先的企业 Linux 发行版的最新版本引入了许多新功...

学会使用Vue JSX,一车老干妈都是你的

作者:子君转发链接:https://mp.weixin.qq.com/s/eAOivpHeowLShfwPfW8-BA?君自前端来,应知前端事。需求时时变,bug改不完。?连续几篇文章,每篇都有女神,被老铁给吐槽了,今天不提了女神了,反正女神都是别人的(扎心了)。这两天小编看了腾讯与老干妈的事情,晚...

迁移GIT仓库并带有历史提交记录

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。// 先用--bare克隆裸仓库 git clone git@gitee.com:xxx/testApp...

再来一波黑科技工具,低调使用

静读天下静读天下是一个特别优秀的电子书阅读器。它上面有多个在线书库,像古登堡计划,很多种优秀的书杂志,都可以下载来阅读。它还能智能识别章节功能,还支持外置的语音阅读功能。它支持多种文本格式,比如说txt,pdf,epub,mobi等等。为了便于阅读它还有10 种配色方式,还有夜间模式。不过免费版有广...

三维家-系统快捷键使用

快键件使用:通过简单的键盘+鼠标操作,快速完成搭配。1.基础快捷键1) Ctrl+V:复制选中对象第一步:鼠标左击物体,按下Ctrl+V 即可复制选中对象。2) Ctrl+G:组合多选对象第一步:按住Ctrl键多选对象--按住Ctrl+G--确定。3) Ctrl+B:解组选中对象第一步:左击选中对象...

vue2中路由的使用步骤,你学会了吗?

今天我们来整理下关于vue2中路由的使用步骤:1. 导入 vue 文件和Vue-router文件(注意:vue-router是依赖vue运行的,所以一定在vue后引入vue-router)2. 定义路由组件模板3. 创建路由实例并定义路由规则4. 将路由实例挂载给Vue实例5. 在结构区域定义控制路...