이 글은 웹 프레임워크 및 도구에 대한 공유 글입니다. 이 글에서는 제가 가장 추천하는 Node 웹 프레임워크 및 도구 18개를 요약하여 공유하겠습니다.
Node.js은 저수준 플랫폼입니다. 개발자의 작업을 간단하고 효율적으로 만들기 위해 커뮤니티에서는 수천 개가 넘는 라이브러리를 만들었습니다.
시간이 지남에 따라 모든 사람이 선택할 수 있는 훌륭한 라이브러리가 많이 있습니다. 다음은 불완전한 목록입니다.
Express: 웹 서버를 만드는 매우 간단한 방법을 제공하며 충분히 강력합니다. .서버의 핵심 기능에 집중할 수 있을 만큼 가볍습니다.
// 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는 최신 웹 애플리케이션을 즉시 구축하기 위한 프런트 엔드와 백엔드를 포함하는 풀 스택 웹 프레임워크입니다.
// 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: 개발자가 인프라 구축에 시간을 허비하는 대신 재사용 가능한 애플리케이션 로직 작성에 집중할 수 있게 해주는 웹 애플리케이션 서비스 구축을 위한 프레임워크입니다.
// 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: 최소한의 오버헤드와 강력한 플러그인 아키텍처로 최고의 개발 경험을 제공하는 데 중점을 둔 웹 프레임워크입니다. Fastify는 가장 빠른 Node.js 웹 프레임워크 중 하나입니다.
// 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 웹 프레임워크 중 하나입니다.
// 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를 만들기 위한 경량 웹 프레임워크입니다. 몇 분 만에 프로토타입을 구축하고 며칠 만에 엔터프라이즈급 애플리케이션을 구축하세요.
// 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개를 공유하는 것이 좋습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!