18个我最推荐的Node.js Web框架和工具
Node.js是一个底层平台。为了方便开发者的工作变得简单高效,社区诞生了超过上千个库。
随着时间的推移,有很多优秀的库可以供大家选择,下面是不完全选择列表:
ExpressExpressExpress: 提供非常简单的方式来创建Web服务器,且功能足够强大并且足够的轻量,专注于服务器的核心功能。
// server.js const express = require('express') const app = express() const port = 3000app.get('/', (req, res) => {res.send('Hello World!') })app.listen(port, () => {console.log(`Example app listening on port ${port}`) })
koakoakoa: 它是由Express背后的同一团队打造,提供更加简单、更小巧的库,并且支持ES NEXT的async await语法。
// server.js const Koa = require('koa'); const app = new Koa();app.use(async ctx => {ctx.body = 'Hello World'; });app.listen(3000);
NestJSNestJSNestJS: 一个基于TypeScript的渐进式Node.js框架,用于构建高效、可靠、可扩展的企业级服务端应用程序。
// app.controller.ts import { Get, Controller, Render } from '@nestjs/common'; import { AppService } from './app.service';@Controller() export class AppController {constructor(private readonly appService: AppService) {}@Get()@Render('index')render() {const message = this.appService.getHello();return { message };} }
Egg.js: 使用Node.js和Koa构建更好的企业级服务端框架。
// app/controller/home.js const Controller = require('egg').Controller;class HomeController extends Controller {async index() {this.ctx.body = 'Hello world';} }module.exports = HomeController;
Next.js: React 框架提供了良好的开发体验,提供生产环境的所有功能:服务端渲染、支持TypeScript、路由预获取等等。
// first-post.js export default function FirstPost() {return <h1>First Post</h1> }
Remix: Remix 是一个全栈Web框架,它开箱即用,包含构建现代Web应用程序前端和后端。
// index.tsx export async function loader({ request }) {return getProjects(); }export async function action({ request }) {const form = await request.formData();return createProject({ title: form.get("title") }); }export default function Projects() {const projects = useLoaderData();const { state } = useTransition();const busy = state === "submitting";return (<div>{projects.map((project) => (<Link to={project.slug}>{project.title}</Link>))}<Form method="post"><input name="title" /><button type="submit" disabled={busy}>{busy ? "Creating..." : "Create New Project"}</button></Form></div>); }
Gatsby: 一个基于React、GraphQL的静态站点生成器,具有非常丰富的插件和生态。
// src/pages/index.js import * as React from 'react'const IndexPage = () => {return (<main><title>Home Page</title><h1>Welcome to my Gatsby site!</h1><p>I'm making this by following the Gatsby Tutorial.</p></main>) }export default IndexPage
hapi: 用于构建Web应用服务的框架,使开发人员能够专注于编写可重用的应用程序逻辑,而不是花费时间构建基础设施。
// index.js'use strict';const Hapi = require('@hapi/hapi');const init = async () => {const server = Hapi.server({port: 3000,host: 'localhost'});server.route({method: 'GET',path: '/',handler: (request, h) => {return 'Hello World!';}});await server.start();console.log('Server running on %s', server.info.uri); };process.on('unhandledRejection', (err) => {console.log(err);process.exit(1); });init();
Fastify: 一个高度专注于以最少的开销和强大的插件架构,提供最佳的开发体验的Web框架。Fastify是最快的Node.js Web框架之一。
// server.js 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()
AdonisJS: 一个基于TypeScript的全功能框架,高度关注开发人员的体验和稳定性。Adonis是最快的Node.js Web框架之一。
// PostsController.js import Post from 'App/Models/Post'export default class PostsController {public async index () {return Post.all()}public async store ({ request }) {return request.body()}}
FeatherJS: Feathers是一个轻量级的Web框架,用于使用JavaScript或者TypeScript创建实时应用程序和REST API。在几分钟内构建原型程序,在几天内构建企业级应用程序。
// app.ts import feathers from '@feathersjs/feathers';interface Message {id?: number;text: string; }class MessageService {messages: Message[] = [];async find () {return this.messages;}async create (data: Pick<Message, 'text'>) {const message: Message = {id: this.messages.length,text: data.text}this.messages.push(message);return message;} }const app = feathers();app.use('messages', new MessageService());app.service('messages').on('created', (message: Message) => {console.log('A new message has been created', message); });const main = async () => {await app.service('messages').create({text: 'Hello Feathers'});await app.service('messages').create({text: 'Hello again'});const messages = await app.service('messages').find();console.log('All messages', messages); };main();
Loopback.io: 使构建复杂集成的现代应用程序变得更加容易。
// hello.controller.ts import {get} from '@loopback/rest'; export class HelloController {@get('/hello')hello(): string {return 'Hello world!';} }
Meteor: 一个非常强大的全栈框架,提供同构的方法来使用JavaScript构建应用程序,在客户端和服务端共享代码。以前提供全套的现成工具,现在与前端库React、Vue和Angular集成。也可用于创建移动应用程序。
Micro: 它提供非常轻量级的服务器来创建异步HTTP微服务。
// index.js const https = require('https'); const {run, send} = require('micro');const {key, cert, passphrase} = require('openssl-self-signed-certificate');const PORT = process.env.PORT || 3443;const options = {key, cert, passphrase};const microHttps = fn => https.createServer(options, (req, res) => run(req, res, fn));const server = microHttps(async (req, res) => {send(res, 200, {encrypted: req.client.encrypted}); });server.listen(PORT); console.log(`Listening on https://localhost:${PORT}`);
Nx: 使用NestJS、Express、React、Angular等进行全栈monorepo开发的工具包,Nx有助于将您的开发从一个团队构建一个应用程序扩展到多个团队协作开发多个应用程序!
Sapper: Sapper是一个用于构建各种规模的Web应用程序框架,具有出色的开发体验和灵活的基于文件系统的路由,提供SSR等等。
Socket.io: 用于构建实时网络应用程序的WebSocket框架。
// index.js const express = require('express'); const app = express(); const http = require('http'); const server = http.createServer(app); const { Server } = require("socket.io"); const io = new Server(server);app.get('/', (req, res) => {res.sendFile(__dirname + '/index.html'); });io.on('connection', (socket) => {console.log('a user connected'); });server.listen(3000, () => {console.log('listening on *:3000'); });
Strapi: Strapi是一种灵活的开源无头CMS,它让开发人员可以自由选择自己喜欢的工具和框架,同时允许编辑者轻松管理他们的内容。
以上就是我推荐的Node.js Web框架和工具,如果有更好的推荐欢迎在评论区评论。
最后还赠送一份前端大礼包送给大家【加君羊:581286372】帮助大家更好的学习!
18个我最推荐的Node.js Web框架和工具相关推荐
- node.js web框架_使用Node.js进行Web爬取的终极指南
node.js web框架 So what's web scraping anyway? It involves automating away the laborious task of colle ...
- 面向前端与未来标准的Node.js Web 框架再进化
Web 开发一直是 Node.js 的主流方向,无论新人必学的 Express / Koa,或者是社区流行的企业级框架 Egg / Nest,各类 Web 框架层出不穷.本次分享来自阿里巴巴前端技术专 ...
- Node.js Web 框架再进化 - 面向前端与未来标准
大厂技术 高级前端 Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 Web 开发一直是 Node.js 的主流方向,无论新人必学的 Express / Koa, ...
- Fastify 2.2.0 和 1.14.5 发布,极速 Node.js Web 框架
百度智能云 云生态狂欢季 热门云产品1折起>>> Fastify 2.2.0 和 1.14.5 发布了.Fastify 是一个高度专注于以最少开销和强大的插件架构为开发者提供最佳 ...
- Fastify 2.0.1 和 1.14.3 发布,极速 Node.js Web 框架
开发四年只会写业务代码,分布式高并发都不会还做程序员? Fastify 2.0.1 和 1.14.3 发布了.Fastify 是一个高度专注于以最少开销和强大的插件架构为开发者提供最佳体验的 We ...
- 【NodeJS】关于Node.js Web框架Koa的中间件编写以及如何理解洋葱模型
文章目录 Koa入门 1.1 中间件的使用 1.2 路由该怎么写 1.2.1 原生路由 1.2.2 利用koa-router中间件实现 1.2.3 文件路径匹配路由 1.3 静态服务器 1.3.1 k ...
- Node.js Web开发框架
Node.js非常适用于Web开发,但是现在无论是一个网站,还是Web App都已经成为包括很多不同部分,如前端.数据库.业务模块.功能模块等等的大型项目,使用Node.js从零开始进行Web开发,也 ...
- 10个最好的 Node.js MVC 框架
Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API 以及大量的服务器 ...
- (18) Node.js npm包管理工具
一.npm概述 npm (Node Package Manager)是 Node.js 的包管理工具. 什么是包?包就是一坨代码,就是 Node.js 的第三方模块. 例如:JQuery模块,Boot ...
最新文章
- 阿里云accessKey如何创建?~ 2015.08.25
- Self-Attention GAN 中的 self-attention 机制
- Introduction | Elasticsearch权威指南(中文版) | 好的博文地址|官方资源所在位置
- 【Pytorch神经网络实战案例】22 基于Cora数据集实现图注意力神经网络GAT的论文分类
- react setState里的作用域
- J2EE--Mybatis基础知识题
- [导入]你的网站被订阅了吗(浅谈RSS2.0)续
- 【虚拟机】关于 virtualbox 和 vmware workstation 对比的个人见解
- 拓端tecdat|R语言中Gibbs抽样的Bayesian贝叶斯简单线性回归
- java html判断,青岛HTML5入门应怎么判断?
- eclipse 插件 subclipse plugin 中修改已经登录的帐户密码的方法
- 【2019徐州网络赛:M】Longest subsequence(思维+构造)
- 盘点那些改变世界的代码
- 关于商业智能BI,你需要知道的相关知识都在这里了
- android 应用克隆 详细信息,IT之家学院:如何将一台安卓手机中的应用“克隆”到另一台...
- 深圳非招人企业的 培训机构---各大应届生留意
- 树莓派安装Google拼音输入法
- 典型相关分析(附SPSS操作)
- python书籍大全
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
热门文章
- vue点击按钮怎么跳转图片_vue下的h5页面实现点击图片跳转小程序
- 考证的光盘怎么复制到电脑上
- StringIO 的使用, 存在的意义
- 实时嵌入式 Linux 系统上GUI的发展与展望
- python3 安装Scapy windouws平台
- java智能推荐系统技术_GitHub - newfishwang/mirs: 电影智能推荐系统JAVA实现
- android 编辑画线,如何在android中用手指在imageview上绘制线条
- 网络云盘项目——FastDFS集群部署
- Meizi梅花雪treeview收藏
- 微支付开发的各种问题 支付接口