2019 年和 2020 年最佳 10 个 Node.js 框架介绍 什么是 Node.js 框架?如何为我的应用程序选择 Node.js 框架?10. Adonis 👉 获取更多高级 Node.js 开发文章 9. Feathers 8. Sails 7. Loopback 6. Fastify 5. Restify 👉 获取更多高级 Node.js 开发文章 4. Nest.js 3. Hapi 2. Koa 1. Express 总结 👉 获取更多高级 Node.js 开发文章

2025-05-26

介绍 2019 年和 2020 年最佳 10 个 Node.js 框架

什么是 node.js 框架?

如何为我的应用程序选择一个 node.js 框架?

10.阿多尼斯

👉 获取更多高级 NODE.JS 开发文章

9.羽毛

8. 帆

7. 回环

6. Fastify

5. Restify

👉 获取更多高级 NODE.JS 开发文章

4. Nest.js

3.哈皮

2. 相思木

1. 快递

结论

👉 获取更多高级 NODE.JS 开发文章

最初发表于softwareontheroad.com

我已经厌倦了阅读那些基于偏见或赞助声称什么是最好的 node.js 框架的文章(是的,有这样的事情)

以下是按每日下载量排名的顶级 node.js 框架,数据取自 npmjs.com 本身(抱歉,yarn)

什么是 node.js 框架?

如何为我的应用程序选择一个 node.js 框架?

您主要需要考虑两件事:

  1. 框架的可扩展性和稳健性

  2. 如果您对开发过程感到满意。

无论可扩展性和稳健性如何,每个 node.js web 框架都是建立在http模块之上的。

其中一些框架添加了太多内容……这对服务器的吞吐量产生了巨大的影响。

在我看来,当你开发的服务业务逻辑较小但需要高度可扩展时,使用 Express.js 或 Fastify.js 这样的准系统框架是最好的。

另一方面,如果您正在开发中型应用程序,最好使用可以帮助您拥有清晰结构的框架,例如 next.js 或 loopback。

这个问题没有简单的答案,你最好了解一下如何在列表中的每个框架上声明 API 路由,然后自己决定。

10.阿多尼斯

Adonis.js是一个 MVC(模型-视图-控制器)node.js 框架,能够构建具有 JWT 身份验证和数据库访问的 API Rest。

这个框架是关于什么的?

好消息是,Adonis.js 框架附带一个 CLI 来为应用程序创建引导程序。

$ npm i -g @adonisjs/cli
$ adonis new adonis-tasks
$ adonis serve --dev
Enter fullscreen mode Exit fullscreen mode

典型的 Adonis 应用程序具有 MVC 结构,这样您就不必浪费时间去弄清楚如何构建您的 Web 服务器。

一些使用 adonis 构建的应用程序可以在这里找到。

👉 获取更多高级 NODE.JS 开发文章

加入其他 2,000 多名精明的 node.js 开发人员,获取文章更新。

电子邮件列表表格

9.羽毛

Feather.js是一个 node.js 框架,承诺成为现代应用程序的 REST 和实时 API 层。

看看有什么能力!!

这是设置 API REST + 实时 WebSockets 连接所需的全部代码,这要归功于 socket.io 插件

const feathers = require('@feathersjs/feathers');
const express = require('@feathersjs/express');
const socketio = require('@feathersjs/socketio');

const memory = require('feathers-memory');

// Creates an Express compatible Feathers application
const app = express(feathers());

// Parse HTTP JSON bodies
app.use(express.json());
// Parse URL-encoded params
app.use(express.urlencoded({ extended: true }));
// Add REST API support
app.configure(express.rest());
// Configure Socket.io real-time APIs
app.configure(socketio());
// Register a messages service with pagination
app.use('/messages', memory({
  paginate: {
    default: 10,
    max: 25
  }
}));
// Register a nicer error handler than the default Express one
app.use(express.errorHandler());

// Add any new real-time connection to the `everybody` channel
app.on('connection', connection => app.channel('everybody').join(connection));
// Publish all events to the `everybody` channel
app.publish(data => app.channel('everybody'));

// Start the server
app.listen(3030).on('listening', () =>
  console.log('Feathers server listening on localhost:3030')
);
Enter fullscreen mode Exit fullscreen mode

很甜蜜吧?

以下是一些使用 feathers.js 构建的应用程序。

8. 帆

Sails.js古老的 node.js 框架

经过 7 年的成熟,这是一个久经考验的 node.js Web 框架,您绝对应该检查一下!

观看实际操作

Sails.js 附带一个 CLI 工具,只需 4 个步骤即可帮助您入门

$ npm install sails -g
$ sails new test-project
$ cd test-project
$ sails lift 
Enter fullscreen mode Exit fullscreen mode

7. 回环

Loopback.io由 IBM 支持,是一个企业级 node.js 框架,被 GoDaddy、赛门铁克、IBM 等公司使用。

他们甚至提供长达 18 个月的长期支持 (LTS)!

该框架附带一个 CLI 工具来搭建你的 node.js 服务器

$ npm i -g @loopback/cli

Enter fullscreen mode Exit fullscreen mode

然后创建一个项目

$ lb4 app
Enter fullscreen mode Exit fullscreen mode

API 路由和控制器如下所示:

import {get} from '@loopback/rest';

export class HelloController {
  @get('/hello')
  hello(): string {
    return 'Hello world!';
  }
}
Enter fullscreen mode Exit fullscreen mode

6. Fastify

Fastify.io是一个 node.js 框架,旨在替代 express.js,性能提高 65%

显示代码

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

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

// Run the server!
fastify.listen(3000, (err, address) => {
  if (err) throw err
  fastify.log.info(`server listening on ${address}`)
})
Enter fullscreen mode Exit fullscreen mode

就是这样!

我喜欢 Fastify.js 的简单性和对 Express.js 的回忆,如果性能是您的服务器的一个问题,那么它绝对是您要使用的框架。

5. Restify

Restify声称是 Node.js Web 框架的未来。

NPM、Netflix、Pinterest 和 Napster 在生产中都使用了该框架。

代码示例

设置 Restify.js 服务器就这么简单

const restify = require('restify');

function respond(req, res, next) {
  res.send('hello ' + req.params.name);
  next();
}

const server = restify.createServer();
server.get('/hello/:name', respond);
server.head('/hello/:name', respond);

server.listen(8080, function() {
  console.log('%s listening at %s', server.name, server.url);
});
Enter fullscreen mode Exit fullscreen mode

👉 获取更多高级 NODE.JS 开发文章

加入其他 2,000 多名精明的 node.js 开发人员,获取文章更新。

电子邮件列表表格

4. Nest.js

Nest.js是一个相对较新的 node.js 框架,其架构与 Angular.io 类似,因此如果您熟悉该前端框架,您会发现这个框架也非常容易开发。

例子

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.setViewEngine('hbs');
  await app.listen(3000);
}
bootstrap();
Enter fullscreen mode Exit fullscreen mode

3.哈皮

hapi.js是三大 node.js 框架之一,拥有一个库和插件生态系统,使得该框架具有高度可定制性。

虽然我从未在生产中使用过 hapi.js,但我已经使用它的验证库 Joi.js 多年了。

创建服务器

hapi.js 网络服务器看起来像这样

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);
};

init();
Enter fullscreen mode Exit fullscreen mode

2. 相思木

Koa是由最著名和最常用的 node.js 框架 Express.js 背后的团队设计的 Web 框架。

Koa 的目标是成为比 express.js 更小、更具表现力、更强大的 Web 应用程序和 API 基础。

通过利用生成器,Koa 允许您放弃回调并大大增加错误处理。

Koa 的核心中没有捆绑任何中间件,而是提供了一套优雅的方法,让编写服务器变得快速而愉快。

例子

const Koa = require('koa'); 
const app = new Koa(); 
app.use(async ctx => { 
  ctx.body = 'Hello World'; 
}); 
app.listen(3000);
Enter fullscreen mode Exit fullscreen mode

1. 快递

Express.js绝对是 Node.js 框架之王,到 2019 年底,其每日下载量将达到惊人的 200 万次。

尽管 Express.js 是一个如此古老的框架,但它仍然受到社区的积极维护,并被 User、Mulesoft、IBM 等大公司所使用。

例子

只需将其添加到您的 node.js 项目中

$ npm install express

然后声明一些API路由

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

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening on port ${port}!`))
Enter fullscreen mode Exit fullscreen mode

这就是您开始使用它所需要的全部内容!

结论

有大量的 node.js 框架,您能做的最好的事情就是去尝试所有框架,直到找到适合您需要的框架。

就我个人而言,我更喜欢 Express.js,因为通过这 6 年的 node.js 开发,我积累了丰富的良好架构模式知识,而这一切都基于反复试验。

但这并不意味着你必须做同样的事情,这里是一个好的 express.js 框架项目的所有秘密。

现在告诉我,您最喜欢的 node.js 框架是什么?

快来给@santypk4发个推文吧!我想知道大家在用什么,我不想落后!

👉 获取更多高级 NODE.JS 开发文章

加入其他 2,000 多名精明的 node.js 开发人员,获取文章更新。

电子邮件列表表格

文章来源:https://dev.to/santypk4/introducing-the-best-10-node-js-frameworks-for-2019-and-2020-mcm
PREV
🛑 You don't need passport.js - Guide to node.js authentication ✌️ Introduction Table of contents Project requirements ✍️ But, what is a JWT anyway? 👩‍🏫 How to generate JWT in node.js 🏭 Conclusion 🏗️ ✋ Hey ! Before you go 🏃‍
NEXT
坚不可摧的 node.js 项目架构 🛡️ 简介 目录 文件夹结构 🏢 三层架构 🥪 使用 Pub/Sub 层 🎙️ 依赖注入 💉 单元测试示例 🕵🏻 Cron Jobs 和循环任务 ⚡ 配置和机密 🤫 加载器 🏗️ 结论 在此处查看示例存储库 ✋ 嘿!在你离开之前 🏃‍