Какие знаешь способы реализации Routing на Node.js

Ответ

В Node.js роутинг можно реализовать несколькими способами:

  1. Нативный подход через http модуль:
const server = http.createServer((req, res) => {
  if (req.url === '/') {
    res.end('Home page');
  } else if (req.url === '/about') {
    res.end('About page');
  }
});
  1. Используя Express.js (наиболее популярный):
const express = require('express');
const app = express();

app.get('/', (req, res) => res.send('Home'));
app.post('/api', (req, res) => res.json({data: 1}));
  1. Через фреймворки:
  • Koa.js (более современная альтернатива Express)
  • Fastify (высокая производительность)
  • NestJS (TypeScript-ориентированный)
  1. Файловая система (Next.js, Nuxt.js):
    Автоматический роутинг на основе структуры папок в проекте.

Для сложных приложений лучше использовать Express или современные фреймворки, так как они предоставляют middleware, параметризованные маршруты и другие удобные возможности.

Ответ 18+ 🔞

Да ты посмотри, какие варианты развели, блядь! В Node.js роутинг можно сделать, оказывается, на любой вкус и цвет, хоть волком вой.

Начнём с дедовского метода, с нативного подхода через http модуль. Представь себе, сидишь ты и пишешь эту хуйню:

const server = http.createServer((req, res) => {
  if (req.url === '/') {
    res.end('Home page');
  } else if (req.url === '/about') {
    res.end('About page');
  }
});

Ну и что, спросишь? А то, что это пиздец как быстро надоест, когда маршрутов станет больше пяти! Ты будешь этот if/else или switch раздувать, пока твой код не станет похож на ёбаную матрёшку из условий. Удовольствия — ноль ебать.

Дальше идёт, конечно, царь и бог — Express.js. Его, наверное, каждый второй знает, даже кот сука собака. Тут уже красота:

const express = require('express');
const app = express();

app.get('/', (req, res) => res.send('Home'));
app.post('/api', (req, res) => res.json({data: 1}));

Чисто, аккуратно, человеческим языком. Хочешь GET, хочешь POST — всё под рукой. Плюс middleware, которые можно впихнуть куда угодно, как хитрая жопа. Но, блядь, не думай, что это серебряная пуля. На больших проектах можно так намиддлварить, что потом сам черт ногу сломит.

А есть же ещё и другие фреймворки, ёпта! Целая куча:

  • Koa.js — типа как Express, но моднее и с async/await из коробки. Для ценителей.
  • Fastify — этот вообще скоростной, как хуй с горы. Кричит про свою дикую производительность.
  • NestJS — ну это для серьёзных дядек на TypeScript. Там уже архитектура, dependency injection, всё как у взрослых. Сам от него охуевал, когда первый раз увидел.

И, наконец, магия для ленивых — файловая система! Как в Next.js или Nuxt.js. Создал папку pages/about — и вот тебе, сука, маршрут /about уже готов! Вообще нихуя не нужно прописывать. Удобно? Ебать да! Но и свою магию там тоже есть, под капотом, будь уверен.

Так что вывод, блядь, простой. Для пет-проекта или быстрого API — Express твой бронежилет. Если хочется скорости и современности — смотри на Koa или Fastify. А если проект большой и ты не боишься сложностей — NestJS тебя ждёт, как манящая пучина. Ну или файловый роутинг, если ты, как я, максимально ленивая мартышлюшка. Выбирай, но помни — хуй с винтом, а не роутинг, главное в итоге работает.