Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions docs/1.docs/50.database.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,13 @@ export default defineNitroConfig({

## Usage

<!-- automd:file code src="../../examples/database/routes/index.ts" -->
<!-- automd:file code src="../../examples/database/server.ts" -->

```ts [index.ts]
export default defineEventHandler(async () => {
```ts [server.ts]
import { defineHandler } from "nitro/h3";
import { useDatabase } from "nitro/runtime";

export default defineHandler(async () => {
const db = useDatabase();

// Create users table
Expand Down
4 changes: 3 additions & 1 deletion examples/api-routes/api/hello.ts
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
export default defineEventHandler(() => "Nitro is amazing!");
import { defineHandler } from "nitro/h3";

export default defineHandler(() => "Nitro is amazing!");
6 changes: 4 additions & 2 deletions examples/api-routes/api/hello/[name].ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export default defineEventHandler(
(event) => `Hello ${event.context.params.name}!`
import { defineHandler } from "nitro/h3";

export default defineHandler(
(event) => `Hello (param: ${event.context.params!.name})!`
);
4 changes: 3 additions & 1 deletion examples/api-routes/api/test.get.ts
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
export default defineEventHandler(() => "Test get handler");
import { defineHandler } from "nitro/h3";

export default defineHandler(() => "Test get handler");
6 changes: 4 additions & 2 deletions examples/api-routes/api/test.post.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
export default defineEventHandler(async (event) => {
const body = await readBody(event);
import { defineHandler } from "h3";

export default defineHandler(async (event) => {
const body = await event.req.json();
return {
message: "Test post handler",
body,
Expand Down
16 changes: 16 additions & 0 deletions examples/api-routes/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>API Routes</title>
</head>
<body>
<h2>API Routes:</h2>
<ul>
<li><a href="/api/hello">/api/hello</a></li>
<li><a href="/api/hello/world">/api/hello/world</a></li>
<li><a href="/api/test">/api/test</a></li>
</ul>
</body>
</html>
6 changes: 4 additions & 2 deletions examples/api-routes/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export default defineNitroConfig({
compatibilityDate: "2025-03-01",
import { defineConfig } from "nitro";

export default defineConfig({
serverDir: ".",
});
5 changes: 2 additions & 3 deletions examples/api-routes/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{
"name": "example-api-routes",
"private": true,
"type": "module",
"scripts": {
"dev": "nitro dev",
"build": "nitro build"
},
"devDependencies": {
"nitropack": "latest"
"nitro": "latest"
}
}
10 changes: 0 additions & 10 deletions examples/api-routes/routes/[...].ts

This file was deleted.

3 changes: 0 additions & 3 deletions examples/api-routes/tsconfig.json

This file was deleted.

4 changes: 4 additions & 0 deletions examples/api-routes/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
7 changes: 5 additions & 2 deletions examples/auto-imports/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
export default defineNitroConfig({
compatibilityDate: "2025-03-01",
import { defineConfig } from "nitro";

export default defineConfig({
serverDir: "./server",
imports: {},
});
5 changes: 2 additions & 3 deletions examples/auto-imports/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{
"name": "example-auto-imports",
"private": true,
"type": "module",
"scripts": {
"dev": "nitro dev",
"build": "nitro build"
},
"devDependencies": {
"nitropack": "latest"
"nitro": "latest"
}
}
1 change: 0 additions & 1 deletion examples/auto-imports/routes/index.ts

This file was deleted.

3 changes: 3 additions & 0 deletions examples/auto-imports/server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { defineHandler } from "nitro/h3";

export default defineHandler(() => `<h1>${makeGreeting("Nitro")}</h1>`);
2 changes: 1 addition & 1 deletion examples/auto-imports/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"extends": "./.nitro/types/tsconfig.json"
"include": [".nitro/types/nitro-imports.d.ts", "src"]
}
4 changes: 4 additions & 0 deletions examples/auto-imports/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
6 changes: 3 additions & 3 deletions examples/cached-handler/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export default defineNitroConfig({
compatibilityDate: "2025-03-01",
});
import { defineConfig } from "nitro";

export default defineConfig({});
5 changes: 2 additions & 3 deletions examples/cached-handler/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{
"name": "example-cached-handler",
"private": true,
"type": "module",
"scripts": {
"dev": "nitro dev",
"build": "nitro build"
},
"devDependencies": {
"nitropack": "latest"
"nitro": "latest"
}
}
9 changes: 0 additions & 9 deletions examples/cached-handler/routes/index.ts

This file was deleted.

13 changes: 13 additions & 0 deletions examples/cached-handler/server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { html } from "nitro/h3";
import { defineCachedEventHandler } from "nitro/runtime";

export default defineCachedEventHandler(
async () => {
await new Promise((resolve) => setTimeout(resolve, 500));
return html`
Response generated at ${new Date().toISOString()} (took 500ms)
<br />(<a href="?skipCache=true">skip cache</a>)
`;
},
{ shouldBypassCache: ({ req }) => req.url.includes("skipCache=true") }
);
3 changes: 0 additions & 3 deletions examples/cached-handler/tsconfig.json

This file was deleted.

4 changes: 4 additions & 0 deletions examples/cached-handler/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
13 changes: 7 additions & 6 deletions examples/custom-error-handler/error.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import type { NitroErrorHandler } from "nitro";
import { defineNitroErrorHandler } from "nitro/runtime";

const errorHandler: NitroErrorHandler = function (error, event) {
event.res.end("[custom error handler] " + error.stack);
};

export default errorHandler;
export default defineNitroErrorHandler((error, event) => {
return new Response(`Custom Error Handler: ${error.message}`, {
status: 500,
headers: { "Content-Type": "text/plain" },
});
});
10 changes: 5 additions & 5 deletions examples/custom-error-handler/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import errorHandler from "./error";
import { defineConfig } from "nitro";
// import errorHandler from "./error";

export default defineNitroConfig({
compatibilityDate: "2025-03-01",
errorHandler: "~/error",
devErrorHandler: errorHandler,
export default defineConfig({
errorHandler: "./error.ts",
// devErrorHandler: errorHandler,
});
5 changes: 2 additions & 3 deletions examples/custom-error-handler/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{
"name": "example-custom-error-handler",
"private": true,
"type": "module",
"scripts": {
"dev": "nitro dev",
"build": "nitro build"
},
"devDependencies": {
"nitropack": "latest"
"nitro": "latest"
}
}
3 changes: 0 additions & 3 deletions examples/custom-error-handler/routes/index.ts

This file was deleted.

5 changes: 5 additions & 0 deletions examples/custom-error-handler/server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { defineHandler, HTTPError } from "nitro/h3";

export default defineHandler(() => {
throw new HTTPError("Example Error!", { status: 500 });
});
3 changes: 0 additions & 3 deletions examples/custom-error-handler/tsconfig.json

This file was deleted.

4 changes: 4 additions & 0 deletions examples/custom-error-handler/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
8 changes: 6 additions & 2 deletions examples/database/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
export default defineNitroConfig({
compatibilityDate: "2025-03-01",
import { defineConfig } from "nitro";

export default defineConfig({
experimental: {
database: true,
tasks: true,
},
database: {
default: { connector: "sqlite" },
},
});
5 changes: 2 additions & 3 deletions examples/database/package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{
"name": "example-database",
"private": true,
"type": "module",
"scripts": {
"dev": "nitro dev",
"build": "nitro build"
},
"devDependencies": {
"nitropack": "latest"
"nitro": "latest"
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
export default defineEventHandler(async () => {
import { defineHandler } from "nitro/h3";
import { useDatabase } from "nitro/runtime";

export default defineHandler(async () => {
const db = useDatabase();

// Create users table
Expand Down
2 changes: 2 additions & 0 deletions examples/database/tasks/db/migrate.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { defineTask, useDatabase } from "nitro/runtime";

export default defineTask({
meta: {
description: "Run database migrations",
Expand Down
3 changes: 0 additions & 3 deletions examples/database/tsconfig.json

This file was deleted.

4 changes: 4 additions & 0 deletions examples/database/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
3 changes: 3 additions & 0 deletions examples/elysia/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { defineConfig } from "nitro";

export default defineConfig({});
11 changes: 11 additions & 0 deletions examples/elysia/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"type": "module",
"scripts": {
"build": "nitro build",
"dev": "nitro dev"
},
"devDependencies": {
"elysia": "^1.4.15",
"nitro": "latest"
}
}
7 changes: 7 additions & 0 deletions examples/elysia/server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Elysia } from "elysia";

const app = new Elysia();

app.get("/", () => "Hello, Elysia with Nitro!");

export default app.compile();
4 changes: 4 additions & 0 deletions examples/elysia/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
6 changes: 3 additions & 3 deletions examples/express/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { defineNitroConfig } from "nitro/config";
import { defineConfig } from "nitro";

export default defineNitroConfig({
export default defineConfig({
routes: {
"/**": { handler: "./server", format: "node" },
"/**": { handler: "./server.ts", format: "node" },
},
});
4 changes: 1 addition & 3 deletions examples/express/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
{
"name": "example-express",
"version": "1.0.0",
"type": "module",
"scripts": {
"build": "nitro build",
Expand All @@ -9,6 +7,6 @@
"devDependencies": {
"@types/express": "^5.0.5",
"express": "^5.1.0",
"nitro": "npm:nitro-nightly"
"nitro": "latest"
}
}
4 changes: 4 additions & 0 deletions examples/express/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({ plugins: [nitro()] });
7 changes: 7 additions & 0 deletions examples/fastify/nitro.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineConfig } from "nitro";

export default defineConfig({
routes: {
"/**": { handler: "./server.ts", format: "node" },
},
});
11 changes: 11 additions & 0 deletions examples/fastify/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"type": "module",
"scripts": {
"build": "nitro build",
"dev": "nitro dev"
},
"devDependencies": {
"fastify": "^5.6.1",
"nitro": "latest"
}
}
9 changes: 9 additions & 0 deletions examples/fastify/server.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Fastify from "fastify";

const app = Fastify();

app.get("/", () => "Hello, Fastify with Nitro!");

await app.ready();

export default app.routing;
Loading