推荐几款Nodejs实现的web框架

2023-05-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框架?欢迎大家评论区推荐讨论~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推荐几款Nodejs实现的web框架 的相关文章

随机推荐

  • 手把手教用matlab做无人驾驶(三)-路径规划A*算法

    这里 xff0c 我们更新主程序如下 xff1a editor Robert Cao 2018 9 1 clc clear all close all disp 39 A Star Path Planing start 39 p start
  • eve-ng导入华为路由器镜像

    iol位置 opt unetlab addons iol bin qemu位置 xff1a opt unetlab addons qemu 设备图标位置 opt unetlab html images icons 设备脚本位置 opt un
  • ROS入门保姆级教程:7-ROS话题通信实现2:自定义消息类型(msg)

    ROS入门往期 xff1a ROS入门保姆级教程 xff1a 1 hello world初体验 ROS入门保姆级教程 xff1a 2 VScode中使用ROS ROS入门保姆级教程 xff1a 3 ROS文件系统 ROS入门保姆级教程 xf
  • 设计模式---订阅发布模式(Subscribe/Publish)

    订阅发布模式定义了一种一对多的依赖关系 xff0c 让多个订阅者对象同时监听某一个主题对象 这个主题对象在自身状态变化时 xff0c 会通知所有订阅者对象 xff0c 使它们能够自动更新自己的状态 将一个系统分割成一系列相互协作的类有一个很
  • 能ping通虚拟机,但ssh连接不上,访问虚拟机服务也不行NAT

    自己的windows ip 跟虚拟机的ip一样 xff0c 产生错觉 xff0c 其实ping的是自己的window主机 xff0c 修改windows 地址后就可以了
  • html5是什么?五大浏览器、网页基本骨架结构与含义、常用标签——学习HTML5第一天的心得总结,若有错误望指正,我将持续更新与大家共同进步。

    注意 xff1a 上方P标签所说的块元素不可嵌套块元素是指在p元素中不建议嵌套块元素 xff0c 如不建议 lt P gt lt div gt lt div gt lt P gt 这种嵌套 xff0c 其他块元素则根据需求嵌套即可 1 ht
  • 新手入门 - 详解 frp 内网穿透 frpc.ini 配置

    本文为 Stille 原创文章 经实践 测试 整理发布 如需转载请联系作者获得授权 并注明转载地址 转载地址 xff1a 新手入门 详解 frp 内网穿透 frpc ini 配置 思有云 IOIOX 前言 本站关于 frp 内网穿透的相关教
  • pixhawk硬件设计粗略解析

    文章目录 前言一 pixhawk是什么 xff1f 二 pixhawk硬件解析总结 前言 本片是个人对NFCYv5飞控的硬件设计的个人分析与笔记 为什么要这么做呢 xff1f 原因很简单 xff0c 一是对pixhawk硬件组成有更加深入的
  • Android IPC机制

    本文首发于个人博客 胖蔡叨叨叨 xff0c 更多相关信息可点击查看 Android IPC机制 IPC IPC Inter Process Communication 进程间通信 xff0c 是指系统中运行的不同进程间的信息交互过程 And
  • PX4的控制与输出

    文章目录 前言控制器部分输出部分控制组混控器混控器的启动信号输出 前言 这篇记录一下自己分析PX4从位置控制 gt 速度控制 gt 姿态控制 gt 角速度控制 gt 电机输出的源码框架的阅读与理解 xff0c 便于之后自己修改控制器 在这个
  • 悬停油门的参数估计方法

    悬停油门的参数估计方法 估计悬停油门 xff0c 实际上就是完成油门值与飞机加速度之间的映射关系 xff0c 准确的估计值可以让飞行控制更为准确 在PX4中 xff0c 对悬停油门的估计方法采用的是扩展卡尔曼滤波 xff0c Fast dr
  • D435/D435i使用技巧

    D435 D435i使用技巧 D435 D435i是目前市场上使用最为方便的双目深度相机 虽然淘宝上其价格有些让人望而却步 xff0c 但是咸鱼上成色不错的D435 D435i 价格就在1000左右 xff0c 依旧是自主无人机视觉定位和感
  • PX4 imu传感器配置

    PX4 传感器配置 坐标系定义 旋转变化 reference 在机器人中各个坐标系之间的变换是非常常见的 xff0c 而在ROS tf 工具中 xff0c 以及Eigen 中 我们常常会见到RPY的旋转表示和四元数的旋转表示 当然学航空出生
  • PX4常用sh命令

    PX4常用sh命令 基于NUTTXnsehll的设计 xff0c PX4还自定义了一些sh命令 xff0c 可以在调试飞控时起到重要作用 这些命令在PX4开发者手册中 xff0c 都有提到 但是为了方便后期使用 xff0c 这里再单独做一下
  • 强化学习介绍(RL)

    一 简介 机器学习有三大分支 xff0c 监督学习 无监督学习和强化学习 xff0c 强化学习是系统从环境学习以使得奖励最大的机器学习 人工智能中称之为强化学习 xff0c 在控制论中被称之为动态规划 xff0c 两者在概念上是等价的 也被
  • 深度学习中高斯噪声:为什么以及如何使用

    来源 xff1a DeepHub IMBA 本文约1800字 xff0c 建议阅读8分钟 高斯噪声是深度学习中用于为输入数据或权重添加随机性的一种技术 在数学上 xff0c 高斯噪声是一种通过向输入数据添加均值为零和标准差 的正态分布随机值
  • 面向算法选择的元学习研究综述

    来源 xff1a 专知 本文为综述介绍 xff0c 建议阅读5分钟本文对基于元学习的算法选择进行综述总结 xff0c 为研究人员了解相关领域的发展现状提供参考 摘要 xff1a 随着人工智能的快速发展 xff0c 从可行的算法中选择满足应用
  • tortoise git 冲突解决

    1 背景 使用tortoise git 解决conflict 2 解释 Git进行同步的时候 xff0c 经常会出现冲突 xff0c 有时候冲突的选项会有三种选项 xff1a 1 Resolved xff1a 直接把文件标识为冲突已经解决
  • win11旗舰版安装WSL子系统和环境-7搭建图形化界面和Docker容器

    搭建图形化界面和Docker容器 Win10Linux子系统 xff08 WSL xff09 图形界面的安装 https blog csdn net NovaSliver article details 83190269 utm mediu
  • 推荐几款Nodejs实现的web框架

    本文首发于个人博客 胖蔡叨叨叨 xff0c 点击可查看原文 Nodejs在近些年可以说是发展异常的迅猛 xff0c 由于同样使用的js原因 xff0c 对于前端开发人员可以说是非常的友善了 xff0c Github上有关nodejs的贡献也