|
42 | 42 |
|
43 | 43 | /* ── Hero ── */ |
44 | 44 | .hero-logo { |
45 | | - width: 80px; height: 80px; margin: 0 auto 24px; |
| 45 | + width: 120px; height: 120px; margin: 0 auto 24px; |
46 | 46 | background: var(--accent-subtle); border: 1px solid rgba(56,189,248,0.15); |
47 | | - border-radius: 16px; display: flex; align-items: center; justify-content: center; |
48 | | - font-size: 42px; font-weight: 700; color: var(--accent); |
49 | | - font-family: var(--font-mono); |
| 47 | + border-radius: 20px; display: flex; align-items: center; justify-content: center; |
| 48 | + padding: 18px; |
50 | 49 | } |
| 50 | + .hero-logo img { width: 100%; height: 100%; object-fit: contain; } |
51 | 51 | .hero h1 { margin-bottom: 12px; } |
52 | 52 | .hero h1 .accent { white-space: nowrap; } |
53 | 53 |
|
|
233 | 233 | <!-- Hero --> |
234 | 234 | <section class="hero"> |
235 | 235 | <div class="container"> |
236 | | - <div class="hero-logo">R</div> |
| 236 | + <div class="hero-logo"><img src="restana-logo.svg" alt="restana"></div> |
237 | 237 | <h1> |
238 | 238 | Fast & minimalist<br /> |
239 | 239 | <span class="accent">REST framework for Node.js</span> |
@@ -524,6 +524,72 @@ <h2>Configuration Options</h2> |
524 | 524 | <tr><td>securityHeaders</td><td>Set default security headers on every response</td><td>true</td></tr> |
525 | 525 | </tbody> |
526 | 526 | </table> |
| 527 | + |
| 528 | + <div class="examples-grid" style="margin-top:28px;"> |
| 529 | + |
| 530 | + <div class="example-card"> |
| 531 | + <span class="ex-title">custom-error-handler.js</span> |
| 532 | + <pre><code><span class="k">const</span> service = <span class="f">restana</span>({ |
| 533 | + errorHandler(err, req, res) { |
| 534 | + console.<span class="f">error</span>(<span class="s">`Error: ${err.message}`</span>) |
| 535 | + res.<span class="f">send</span>({ error: err.message }, err.status || <span class="n">500</span>) |
| 536 | + } |
| 537 | +})</code></pre> |
| 538 | + </div> |
| 539 | + |
| 540 | + <div class="example-card"> |
| 541 | + <span class="ex-title">https-custom-server.js</span> |
| 542 | + <pre><code><span class="k">const</span> https = <span class="f">require</span>(<span class="s">'https'</span>) |
| 543 | +<span class="k">const</span> fs = <span class="f">require</span>(<span class="s">'fs'</span>) |
| 544 | +<span class="k">const</span> service = <span class="f">restana</span>({ |
| 545 | + server: https.<span class="f">createServer</span>({ |
| 546 | + key: fs.<span class="f">readFileSync</span>(<span class="s">'key.pem'</span>), |
| 547 | + cert: fs.<span class="f">readFileSync</span>(<span class="s">'cert.pem'</span>) |
| 548 | + }) |
| 549 | +}) |
| 550 | +service.<span class="f">start</span>(<span class="n">443</span>)</code></pre> |
| 551 | + </div> |
| 552 | + |
| 553 | + <div class="example-card"> |
| 554 | + <span class="ex-title">custom-404.js</span> |
| 555 | + <pre><code><span class="k">const</span> service = <span class="f">restana</span>({ |
| 556 | + defaultRoute(req, res) { |
| 557 | + res.statusCode = <span class="n">404</span> |
| 558 | + res.<span class="f">send</span>({ path: req.url, error: <span class="s">'Not Found'</span> }) |
| 559 | + } |
| 560 | +})</code></pre> |
| 561 | + </div> |
| 562 | + |
| 563 | + <div class="example-card"> |
| 564 | + <span class="ex-title">disable-cache.js</span> |
| 565 | + <pre><code><span class="k">const</span> service = <span class="f">restana</span>({ |
| 566 | + routerCacheSize: <span class="n">0</span> <span class="c">// disable LRU cache</span> |
| 567 | +}) |
| 568 | +<span class="c">// Or: unlimited cache (useful for many static routes)</span> |
| 569 | +<span class="c">// routerCacheSize: -1</span></code></pre> |
| 570 | + </div> |
| 571 | + |
| 572 | + <div class="example-card"> |
| 573 | + <span class="ex-title">enable-trace-debug.js</span> |
| 574 | + <pre><code><span class="k">const</span> service = <span class="f">restana</span>({ |
| 575 | + enableTrace: <span class="k">true</span> |
| 576 | +}) |
| 577 | +service.<span class="f">trace</span>(<span class="s">'/debug'</span>, (req, res) => { |
| 578 | + res.<span class="f">send</span>(<span class="s">'Echo: '</span> + req.url) |
| 579 | +}) |
| 580 | +<span class="c">// ⚠️ Not recommended in production</span></code></pre> |
| 581 | + </div> |
| 582 | + |
| 583 | + <div class="example-card"> |
| 584 | + <span class="ex-title">disable-security-headers.js</span> |
| 585 | + <pre><code><span class="k">const</span> service = <span class="f">restana</span>({ |
| 586 | + securityHeaders: <span class="k">false</span> |
| 587 | +}) |
| 588 | +<span class="c">// Use when you manage headers yourself</span> |
| 589 | +<span class="c">// (e.g. with Helmet or for non-browser clients)</span></code></pre> |
| 590 | + </div> |
| 591 | + |
| 592 | + </div> |
527 | 593 | </div> |
528 | 594 | </section> |
529 | 595 |
|
|
0 commit comments