この記事は、Web フレームワークとツールに関する共有記事です。この記事では、私が最も推奨する Node Web フレームワークとツール 18 個をまとめて共有します。皆さんのお役に立てれば幸いです。
Node.js は基盤となるプラットフォームです。開発者の作業をシンプルかつ効率的にするために、コミュニティは数千を超えるライブラリを作成しました。
時間が経つにつれて、誰もが選択できる優れたライブラリが数多く存在します。以下は不完全な選択リストです:
Express: Web サーバーを作成するための非常に簡単な方法を提供し、サーバーのコア機能に焦点を当てた、十分に強力で軽量です。
// server.js 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}`) })
koa: Express と同じチームによって構築されており、よりシンプルで小規模なライブラリを提供し、ES NEXT の非同期待機をサポートしています。構文。
// server.js const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);
NestJS: 効率的で信頼性が高く、スケーラブルなエンタープライズ グレードのサーバーサイドを構築するための 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 フレームワークの 1 つです。
// 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 フレームワークの 1 つです。
// 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 は、JavaScript または TypeScript を使用してリアルタイム アプリケーションと REST API を作成するための軽量 Web フレームワークです。プロトタイプを数分で構築し、エンタープライズグレードのアプリケーションを数日で構築します。
// 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框架和工具,如果有更好的推荐欢迎在评论区评论。
更多node相关知识,请访问:nodejs 教程!
以上がNode.js で知っておく価値のある 18 の Web フレームワークとツールを共有することをお勧めしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。