[{"data":1,"prerenderedAt":1749},["ShallowReactive",2],{"navigation":3,"-docs-database":445,"-docs-database-surround":1744},[4,123,260,266,430,442],{"title":5,"path":6,"stem":7,"children":8,"icon":122},"","\u002Fdocs","1.docs\u002F1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77,82,87,92,97,102,107,112,117],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","\u002Fdocs\u002Fquick-start","1.docs\u002F2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","\u002Fdocs\u002Frenderer","1.docs\u002F4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","\u002Fdocs\u002Frouting","1.docs\u002F5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","\u002Fdocs\u002Fassets","1.docs\u002F50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","\u002Fdocs\u002Fconfiguration","1.docs\u002F50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","\u002Fdocs\u002Fdatabase","1.docs\u002F50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","\u002Fdocs\u002Flifecycle","1.docs\u002F50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"OpenAPI","\u002Fdocs\u002Fopenapi","1.docs\u002F50.openapi","ri:contract-line",{"title":53,"path":54,"stem":55,"icon":56},"Plugins","\u002Fdocs\u002Fplugins","1.docs\u002F50.plugins","ri:plug-line",{"title":58,"path":59,"stem":60,"icon":61},"Prerendering","\u002Fdocs\u002Fprerendering","1.docs\u002F50.prerendering","ri:file-copy-2-line",{"title":63,"path":64,"stem":65,"icon":66},"Tasks","\u002Fdocs\u002Ftasks","1.docs\u002F50.tasks","codicon:run-all",{"title":68,"path":69,"stem":70,"icon":71},"WebSocket","\u002Fdocs\u002Fwebsocket","1.docs\u002F50.websocket","ri:broadcast-fill",{"title":73,"path":74,"stem":75,"icon":76},"Modules","\u002Fdocs\u002Fmodules","1.docs\u002F55.modules","i-lucide-puzzle",{"title":78,"path":79,"stem":80,"icon":81},"Server Entry","\u002Fdocs\u002Fserver-entry","1.docs\u002F6.server-entry","ri:server-line",{"title":83,"path":84,"stem":85,"icon":86},"CLI","\u002Fdocs\u002Fcli","1.docs\u002F60.cli","i-lucide-terminal",{"title":88,"path":89,"stem":90,"icon":91},"Vite","\u002Fdocs\u002Fvite","1.docs\u002F61.vite","i-logos-vitejs",{"title":93,"path":94,"stem":95,"icon":96},"Utils","\u002Fdocs\u002Futils","1.docs\u002F62.utils","i-lucide-braces",{"title":98,"path":99,"stem":100,"icon":101},"TypeScript","\u002Fdocs\u002Ftypescript","1.docs\u002F63.typescript","i-logos-typescript-icon",{"title":103,"path":104,"stem":105,"icon":106},"Cache","\u002Fdocs\u002Fcache","1.docs\u002F7.cache","ri:speed-line",{"title":108,"path":109,"stem":110,"icon":111},"KV Storage","\u002Fdocs\u002Fstorage","1.docs\u002F8.storage","carbon:datastore",{"title":113,"path":114,"stem":115,"icon":116},"Migration Guide","\u002Fdocs\u002Fmigration","1.docs\u002F99.migration","ri:arrow-right-up-line",{"title":118,"path":119,"stem":120,"icon":121},"Nightly Channel","\u002Fdocs\u002Fnightly","1.docs\u002F99.nightly","ri:moon-fill","i-lucide-book-open",{"title":124,"path":125,"stem":126,"children":127,"icon":129},"Deploy","\u002Fdeploy","2.deploy\u002F0.index",[128,130,155],{"title":124,"path":125,"stem":126,"icon":129},"ri:upload-cloud-2-line",{"title":131,"path":132,"stem":133,"children":134,"page":154},"Runtimes","\u002Fdeploy\u002Fruntimes","2.deploy\u002F10.runtimes",[135,140,145,150],{"title":136,"path":137,"stem":138,"icon":139},"Node.js","\u002Fdeploy\u002Fruntimes\u002Fnode","2.deploy\u002F10.runtimes\u002F1.node","akar-icons:node-fill",{"title":141,"path":142,"stem":143,"icon":144},"Bun","\u002Fdeploy\u002Fruntimes\u002Fbun","2.deploy\u002F10.runtimes\u002Fbun","simple-icons:bun",{"title":146,"path":147,"stem":148,"icon":149},"Deno","\u002Fdeploy\u002Fruntimes\u002Fdeno","2.deploy\u002F10.runtimes\u002Fdeno","simple-icons:deno",{"title":151,"path":152,"stem":153},"Standard","\u002Fdeploy\u002Fruntimes\u002Fstandard","2.deploy\u002F10.runtimes\u002Fstandard",false,{"title":156,"path":157,"stem":158,"children":159,"page":154},"Providers","\u002Fdeploy\u002Fproviders","2.deploy\u002F20.providers",[160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256],{"title":161,"path":162,"stem":163},"Alwaysdata","\u002Fdeploy\u002Fproviders\u002Falwaysdata","2.deploy\u002F20.providers\u002Falwaysdata",{"title":165,"path":166,"stem":167},"AWS Lambda","\u002Fdeploy\u002Fproviders\u002Faws","2.deploy\u002F20.providers\u002Faws",{"title":169,"path":170,"stem":171},"AWS Amplify","\u002Fdeploy\u002Fproviders\u002Faws-amplify","2.deploy\u002F20.providers\u002Faws-amplify",{"title":173,"path":174,"stem":175},"Azure","\u002Fdeploy\u002Fproviders\u002Fazure","2.deploy\u002F20.providers\u002Fazure",{"title":177,"path":178,"stem":179},"Cleavr","\u002Fdeploy\u002Fproviders\u002Fcleavr","2.deploy\u002F20.providers\u002Fcleavr",{"title":181,"path":182,"stem":183},"Cloudflare","\u002Fdeploy\u002Fproviders\u002Fcloudflare","2.deploy\u002F20.providers\u002Fcloudflare",{"title":185,"path":186,"stem":187},"Deno Deploy","\u002Fdeploy\u002Fproviders\u002Fdeno-deploy","2.deploy\u002F20.providers\u002Fdeno-deploy",{"title":189,"path":190,"stem":191},"DigitalOcean","\u002Fdeploy\u002Fproviders\u002Fdigitalocean","2.deploy\u002F20.providers\u002Fdigitalocean",{"title":193,"path":194,"stem":195},"EdgeOne Pages","\u002Fdeploy\u002Fproviders\u002Fedgeone","2.deploy\u002F20.providers\u002Fedgeone",{"title":197,"path":198,"stem":199},"Firebase","\u002Fdeploy\u002Fproviders\u002Ffirebase","2.deploy\u002F20.providers\u002Ffirebase",{"title":201,"path":202,"stem":203},"Flightcontrol","\u002Fdeploy\u002Fproviders\u002Fflightcontrol","2.deploy\u002F20.providers\u002Fflightcontrol",{"title":205,"path":206,"stem":207},"Genezio","\u002Fdeploy\u002Fproviders\u002Fgenezio","2.deploy\u002F20.providers\u002Fgenezio",{"title":209,"path":210,"stem":211},"GitHub Pages","\u002Fdeploy\u002Fproviders\u002Fgithub-pages","2.deploy\u002F20.providers\u002Fgithub-pages",{"title":213,"path":214,"stem":215},"GitLab Pages","\u002Fdeploy\u002Fproviders\u002Fgitlab-pages","2.deploy\u002F20.providers\u002Fgitlab-pages",{"title":217,"path":218,"stem":219},"Heroku","\u002Fdeploy\u002Fproviders\u002Fheroku","2.deploy\u002F20.providers\u002Fheroku",{"title":221,"path":222,"stem":223},"IIS","\u002Fdeploy\u002Fproviders\u002Fiis","2.deploy\u002F20.providers\u002Fiis",{"title":225,"path":226,"stem":227},"Koyeb","\u002Fdeploy\u002Fproviders\u002Fkoyeb","2.deploy\u002F20.providers\u002Fkoyeb",{"title":229,"path":230,"stem":231},"Netlify","\u002Fdeploy\u002Fproviders\u002Fnetlify","2.deploy\u002F20.providers\u002Fnetlify",{"title":233,"path":234,"stem":235},"Platform.sh","\u002Fdeploy\u002Fproviders\u002Fplatform-sh","2.deploy\u002F20.providers\u002Fplatform-sh",{"title":237,"path":238,"stem":239},"Render.com","\u002Fdeploy\u002Fproviders\u002Frender","2.deploy\u002F20.providers\u002Frender",{"title":241,"path":242,"stem":243},"Stormkit","\u002Fdeploy\u002Fproviders\u002Fstormkit","2.deploy\u002F20.providers\u002Fstormkit",{"title":245,"path":246,"stem":247},"Vercel","\u002Fdeploy\u002Fproviders\u002Fvercel","2.deploy\u002F20.providers\u002Fvercel",{"title":249,"path":250,"stem":251},"Zeabur","\u002Fdeploy\u002Fproviders\u002Fzeabur","2.deploy\u002F20.providers\u002Fzeabur",{"title":253,"path":254,"stem":255},"Zephyr Cloud","\u002Fdeploy\u002Fproviders\u002Fzephyr","2.deploy\u002F20.providers\u002Fzephyr",{"title":257,"path":258,"stem":259},"Zerops","\u002Fdeploy\u002Fproviders\u002Fzerops","2.deploy\u002F20.providers\u002Fzerops",{"title":261,"path":262,"stem":263,"children":264,"icon":36},"Config","\u002Fconfig","3.config\u002F0.index",[265],{"title":261,"path":262,"stem":263,"icon":36},{"title":267,"path":268,"stem":269,"children":270,"icon":272},"Examples","\u002Fexamples","4.examples\u002F0.index",[271,273,278,283,288,293,297,302,307,312,317,322,327,331,336,340,344,349,354,359,364,369,374,379,383,388,393,398,402,407,412,416,421,426],{"title":267,"path":268,"stem":269,"icon":272},"i-lucide-folder-code",{"title":274,"path":275,"stem":276,"icon":277},"API Routes","\u002Fexamples\u002Fapi-routes","4.examples\u002Fapi-routes","i-lucide-route",{"title":279,"path":280,"stem":281,"icon":282},"Auto Imports","\u002Fexamples\u002Fauto-imports","4.examples\u002Fauto-imports","i-lucide-import",{"title":284,"path":285,"stem":286,"icon":287},"Cached Handler","\u002Fexamples\u002Fcached-handler","4.examples\u002Fcached-handler","i-lucide-clock",{"title":289,"path":290,"stem":291,"icon":292},"Custom Error Handler","\u002Fexamples\u002Fcustom-error-handler","4.examples\u002Fcustom-error-handler","i-lucide-alert-circle",{"title":38,"path":294,"stem":295,"icon":296},"\u002Fexamples\u002Fdatabase","4.examples\u002Fdatabase","i-lucide-database",{"title":298,"path":299,"stem":300,"icon":301},"Elysia","\u002Fexamples\u002Felysia","4.examples\u002Felysia","i-skill-icons-elysia-dark",{"title":303,"path":304,"stem":305,"icon":306},"Express","\u002Fexamples\u002Fexpress","4.examples\u002Fexpress","i-simple-icons-express",{"title":308,"path":309,"stem":310,"icon":311},"Fastify","\u002Fexamples\u002Ffastify","4.examples\u002Ffastify","i-simple-icons-fastify",{"title":313,"path":314,"stem":315,"icon":316},"Hello World","\u002Fexamples\u002Fhello-world","4.examples\u002Fhello-world","i-lucide-sparkles",{"title":318,"path":319,"stem":320,"icon":321},"Hono","\u002Fexamples\u002Fhono","4.examples\u002Fhono","i-logos-hono",{"title":323,"path":324,"stem":325,"icon":326},"Import Alias","\u002Fexamples\u002Fimport-alias","4.examples\u002Fimport-alias","i-lucide-at-sign",{"title":328,"path":329,"stem":330,"icon":46},"Middleware","\u002Fexamples\u002Fmiddleware","4.examples\u002Fmiddleware",{"title":332,"path":333,"stem":334,"icon":335},"Mono JSX","\u002Fexamples\u002Fmono-jsx","4.examples\u002Fmono-jsx","i-lucide-brackets",{"title":337,"path":338,"stem":339,"icon":335},"Nano JSX","\u002Fexamples\u002Fnano-jsx","4.examples\u002Fnano-jsx",{"title":53,"path":341,"stem":342,"icon":343},"\u002Fexamples\u002Fplugins","4.examples\u002Fplugins","i-lucide-plug",{"title":345,"path":346,"stem":347,"icon":348},"Custom Renderer","\u002Fexamples\u002Frenderer","4.examples\u002Frenderer","i-lucide-code",{"title":350,"path":351,"stem":352,"icon":353},"Runtime Config","\u002Fexamples\u002Fruntime-config","4.examples\u002Fruntime-config","i-lucide-settings",{"title":355,"path":356,"stem":357,"icon":358},"Server Fetch","\u002Fexamples\u002Fserver-fetch","4.examples\u002Fserver-fetch","i-lucide-arrow-right-left",{"title":360,"path":361,"stem":362,"icon":363},"Shiki","\u002Fexamples\u002Fshiki","4.examples\u002Fshiki","i-lucide-highlighter",{"title":365,"path":366,"stem":367,"icon":368},"Takumi","\u002Fexamples\u002Ftakumi","4.examples\u002Ftakumi","i-lucide-image",{"title":370,"path":371,"stem":372,"icon":373},"Tracing","\u002Fexamples\u002Ftracing","4.examples\u002Ftracing","i-lucide-activity",{"title":375,"path":376,"stem":377,"icon":378},"Virtual Routes","\u002Fexamples\u002Fvirtual-routes","4.examples\u002Fvirtual-routes","i-lucide-box",{"title":380,"path":381,"stem":382,"icon":91},"Vite Nitro Plugin","\u002Fexamples\u002Fvite-nitro-plugin","4.examples\u002Fvite-nitro-plugin",{"title":384,"path":385,"stem":386,"icon":387},"Vite RSC","\u002Fexamples\u002Fvite-rsc","4.examples\u002Fvite-rsc","i-logos-react",{"title":389,"path":390,"stem":391,"icon":392},"Vite SSR HTML","\u002Fexamples\u002Fvite-ssr-html","4.examples\u002Fvite-ssr-html","i-logos-html-5",{"title":394,"path":395,"stem":396,"icon":397},"SSR with Preact","\u002Fexamples\u002Fvite-ssr-preact","4.examples\u002Fvite-ssr-preact","i-logos-preact",{"title":399,"path":400,"stem":401,"icon":387},"SSR with React","\u002Fexamples\u002Fvite-ssr-react","4.examples\u002Fvite-ssr-react",{"title":403,"path":404,"stem":405,"icon":406},"SSR with SolidJS","\u002Fexamples\u002Fvite-ssr-solid","4.examples\u002Fvite-ssr-solid","i-logos-solidjs-icon",{"title":408,"path":409,"stem":410,"icon":411},"SSR with TanStack Router","\u002Fexamples\u002Fvite-ssr-tsr-react","4.examples\u002Fvite-ssr-tsr-react","i-simple-icons-tanstack",{"title":413,"path":414,"stem":415,"icon":411},"SSR with TanStack Start","\u002Fexamples\u002Fvite-ssr-tss-react","4.examples\u002Fvite-ssr-tss-react",{"title":417,"path":418,"stem":419,"icon":420},"SSR with Vue Router","\u002Fexamples\u002Fvite-ssr-vue-router","4.examples\u002Fvite-ssr-vue-router","i-logos-vue",{"title":422,"path":423,"stem":424,"icon":425},"Vite + tRPC","\u002Fexamples\u002Fvite-trpc","4.examples\u002Fvite-trpc","i-simple-icons-trpc",{"title":68,"path":427,"stem":428,"icon":429},"\u002Fexamples\u002Fwebsocket","4.examples\u002Fwebsocket","i-lucide-radio",{"title":431,"path":432,"stem":433,"children":434},"Blog","\u002Fblog","9.blog",[435,438],{"title":431,"path":432,"stem":436,"icon":437},"9.blog\u002Findex","i-lucide-file-text",{"title":439,"path":440,"stem":441,"icon":437},"Nitro v3 Beta is here!","\u002Fblog\u002Fv3-beta","9.blog\u002F1.v3-beta",{"title":5,"path":443,"stem":444},"\u002F","index",{"id":446,"title":38,"body":447,"description":1738,"extension":1739,"meta":1740,"navigation":1741,"path":39,"seo":1742,"stem":40,"__hash__":1743},"content\u002F1.docs\u002F50.database.md",{"type":448,"value":449,"toc":1726,"icon":41},"minimark",[450,472,477,489,492,575,580,842,849,859,926,939,942,948,951,1079,1085,1088,1125,1131,1134,1204,1207,1224,1337,1341,1352,1461,1478,1492,1496,1509,1722],[451,452,453,454,458,459,466,467,471],"p",{},"The default database connection is ",[455,456,457],"strong",{},"preconfigured"," with ",[460,461,465],"a",{"href":462,"rel":463},"https:\u002F\u002Fdb0.unjs.io\u002Fconnectors\u002Fsqlite",[464],"nofollow","SQLite"," and works out of the box for development mode and any Node.js compatible production deployments. By default, data will be stored in ",[468,469,470],"code",{},".data\u002Fdb.sqlite",".",[473,474],"read-more",{"title":475,"to":476},"DB0 Documentation","https:\u002F\u002Fdb0.unjs.io",[478,479,480],"important",{},[451,481,482,483,488],{},"Database support is currently experimental.\nRefer to the ",[460,484,487],{"href":485,"rel":486},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fdb0\u002Fissues",[464],"db0 issues"," for status and bug report.",[451,490,491],{},"The database layer is opt-in — enable the experimental feature flag:",[493,494,499],"pre",{"className":495,"code":496,"filename":497,"language":498,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","import { defineConfig } from \"nitro\";\n\nexport default defineConfig({\n  experimental: {\n    database: true\n  }\n})\n","nitro.config.ts","ts",[468,500,501,524,531,547,553,563,569],{"__ignoreMap":5},[502,503,506,510,514,517,521],"span",{"class":504,"line":505},"line",1,[502,507,509],{"class":508},"so5gQ","import",[502,511,513],{"class":512},"slsVL"," { defineConfig } ",[502,515,516],{"class":508},"from",[502,518,520],{"class":519},"sfrk1"," \"nitro\"",[502,522,523],{"class":512},";\n",[502,525,527],{"class":504,"line":526},2,[502,528,530],{"emptyLinePlaceholder":529},true,"\n",[502,532,534,537,540,544],{"class":504,"line":533},3,[502,535,536],{"class":508},"export",[502,538,539],{"class":508}," default",[502,541,543],{"class":542},"shcOC"," defineConfig",[502,545,546],{"class":512},"({\n",[502,548,550],{"class":504,"line":549},4,[502,551,552],{"class":512},"  experimental: {\n",[502,554,556,559],{"class":504,"line":555},5,[502,557,558],{"class":512},"    database: ",[502,560,562],{"class":561},"suiK_","true\n",[502,564,566],{"class":504,"line":565},6,[502,567,568],{"class":512},"  }\n",[502,570,572],{"class":504,"line":571},7,[502,573,574],{"class":512},"})\n",[576,577,579],"h2",{"id":578},"usage","Usage",[493,581,584],{"className":495,"code":582,"filename":583,"language":498,"meta":5,"style":5},"import { defineHandler } from \"nitro\";\nimport { useDatabase } from \"nitro\u002Fdatabase\";\n\nexport default defineHandler(async () => {\n  const db = useDatabase();\n\n  \u002F\u002F Create users table\n  await db.sql`DROP TABLE IF EXISTS users`;\n  await db.sql`CREATE TABLE IF NOT EXISTS users (\"id\" TEXT PRIMARY KEY, \"firstName\" TEXT, \"lastName\" TEXT, \"email\" TEXT)`;\n\n  \u002F\u002F Add a new user\n  const userId = String(Math.round(Math.random() * 10_000));\n  await db.sql`INSERT INTO users VALUES (${userId}, 'John', 'Doe', '')`;\n\n  \u002F\u002F Query for users\n  const { rows } = await db.sql`SELECT * FROM users WHERE id = ${userId}`;\n\n  return {\n    rows,\n  };\n});\n","server.ts",[468,585,586,599,613,617,641,658,662,668,685,699,704,710,746,766,771,777,811,816,824,830,836],{"__ignoreMap":5},[502,587,588,590,593,595,597],{"class":504,"line":505},[502,589,509],{"class":508},[502,591,592],{"class":512}," { defineHandler } ",[502,594,516],{"class":508},[502,596,520],{"class":519},[502,598,523],{"class":512},[502,600,601,603,606,608,611],{"class":504,"line":526},[502,602,509],{"class":508},[502,604,605],{"class":512}," { useDatabase } ",[502,607,516],{"class":508},[502,609,610],{"class":519}," \"nitro\u002Fdatabase\"",[502,612,523],{"class":512},[502,614,615],{"class":504,"line":533},[502,616,530],{"emptyLinePlaceholder":529},[502,618,619,621,623,626,629,632,635,638],{"class":504,"line":549},[502,620,536],{"class":508},[502,622,539],{"class":508},[502,624,625],{"class":542}," defineHandler",[502,627,628],{"class":512},"(",[502,630,631],{"class":508},"async",[502,633,634],{"class":512}," () ",[502,636,637],{"class":508},"=>",[502,639,640],{"class":512}," {\n",[502,642,643,646,649,652,655],{"class":504,"line":555},[502,644,645],{"class":508},"  const",[502,647,648],{"class":561}," db",[502,650,651],{"class":508}," =",[502,653,654],{"class":542}," useDatabase",[502,656,657],{"class":512},"();\n",[502,659,660],{"class":504,"line":565},[502,661,530],{"emptyLinePlaceholder":529},[502,663,664],{"class":504,"line":571},[502,665,667],{"class":666},"sCsY4","  \u002F\u002F Create users table\n",[502,669,671,674,677,680,683],{"class":504,"line":670},8,[502,672,673],{"class":508},"  await",[502,675,676],{"class":512}," db.",[502,678,679],{"class":542},"sql",[502,681,682],{"class":519},"`DROP TABLE IF EXISTS users`",[502,684,523],{"class":512},[502,686,688,690,692,694,697],{"class":504,"line":687},9,[502,689,673],{"class":508},[502,691,676],{"class":512},[502,693,679],{"class":542},[502,695,696],{"class":519},"`CREATE TABLE IF NOT EXISTS users (\"id\" TEXT PRIMARY KEY, \"firstName\" TEXT, \"lastName\" TEXT, \"email\" TEXT)`",[502,698,523],{"class":512},[502,700,702],{"class":504,"line":701},10,[502,703,530],{"emptyLinePlaceholder":529},[502,705,707],{"class":504,"line":706},11,[502,708,709],{"class":666},"  \u002F\u002F Add a new user\n",[502,711,713,715,718,720,723,726,729,731,734,737,740,743],{"class":504,"line":712},12,[502,714,645],{"class":508},[502,716,717],{"class":561}," userId",[502,719,651],{"class":508},[502,721,722],{"class":542}," String",[502,724,725],{"class":512},"(Math.",[502,727,728],{"class":542},"round",[502,730,725],{"class":512},[502,732,733],{"class":542},"random",[502,735,736],{"class":512},"() ",[502,738,739],{"class":508},"*",[502,741,742],{"class":561}," 10_000",[502,744,745],{"class":512},"));\n",[502,747,749,751,753,755,758,761,764],{"class":504,"line":748},13,[502,750,673],{"class":508},[502,752,676],{"class":512},[502,754,679],{"class":542},[502,756,757],{"class":519},"`INSERT INTO users VALUES (${",[502,759,760],{"class":512},"userId",[502,762,763],{"class":519},"}, 'John', 'Doe', '')`",[502,765,523],{"class":512},[502,767,769],{"class":504,"line":768},14,[502,770,530],{"emptyLinePlaceholder":529},[502,772,774],{"class":504,"line":773},15,[502,775,776],{"class":666},"  \u002F\u002F Query for users\n",[502,778,780,782,785,788,791,794,797,799,801,804,806,809],{"class":504,"line":779},16,[502,781,645],{"class":508},[502,783,784],{"class":512}," { ",[502,786,787],{"class":561},"rows",[502,789,790],{"class":512}," } ",[502,792,793],{"class":508},"=",[502,795,796],{"class":508}," await",[502,798,676],{"class":512},[502,800,679],{"class":542},[502,802,803],{"class":519},"`SELECT * FROM users WHERE id = ${",[502,805,760],{"class":512},[502,807,808],{"class":519},"}`",[502,810,523],{"class":512},[502,812,814],{"class":504,"line":813},17,[502,815,530],{"emptyLinePlaceholder":529},[502,817,819,822],{"class":504,"line":818},18,[502,820,821],{"class":508},"  return",[502,823,640],{"class":512},[502,825,827],{"class":504,"line":826},19,[502,828,829],{"class":512},"    rows,\n",[502,831,833],{"class":504,"line":832},20,[502,834,835],{"class":512},"  };\n",[502,837,839],{"class":504,"line":838},21,[502,840,841],{"class":512},"});\n",[843,844,846],"h3",{"id":845},"usedatabase",[468,847,848],{},"useDatabase",[451,850,851,852,854,855,858],{},"Use ",[468,853,848],{}," to get a database instance. It accepts an optional connection name (defaults to ",[468,856,857],{},"\"default\"",").",[493,860,862],{"className":495,"code":861,"language":498,"meta":5,"style":5},"import { useDatabase } from \"nitro\u002Fdatabase\";\n\n\u002F\u002F Use the default connection\nconst db = useDatabase();\n\n\u002F\u002F Use a named connection\nconst usersDb = useDatabase(\"users\");\n",[468,863,864,876,880,885,898,902,907],{"__ignoreMap":5},[502,865,866,868,870,872,874],{"class":504,"line":505},[502,867,509],{"class":508},[502,869,605],{"class":512},[502,871,516],{"class":508},[502,873,610],{"class":519},[502,875,523],{"class":512},[502,877,878],{"class":504,"line":526},[502,879,530],{"emptyLinePlaceholder":529},[502,881,882],{"class":504,"line":533},[502,883,884],{"class":666},"\u002F\u002F Use the default connection\n",[502,886,887,890,892,894,896],{"class":504,"line":549},[502,888,889],{"class":508},"const",[502,891,648],{"class":561},[502,893,651],{"class":508},[502,895,654],{"class":542},[502,897,657],{"class":512},[502,899,900],{"class":504,"line":555},[502,901,530],{"emptyLinePlaceholder":529},[502,903,904],{"class":504,"line":565},[502,905,906],{"class":666},"\u002F\u002F Use a named connection\n",[502,908,909,911,914,916,918,920,923],{"class":504,"line":571},[502,910,889],{"class":508},[502,912,913],{"class":561}," usersDb",[502,915,651],{"class":508},[502,917,654],{"class":542},[502,919,628],{"class":512},[502,921,922],{"class":519},"\"users\"",[502,924,925],{"class":512},");\n",[927,928,929],"note",{},[451,930,931,932,935,936,938],{},"When ",[468,933,934],{},"experimental.database"," is enabled, ",[468,937,848],{}," is auto-imported and available without an explicit import statement.",[451,940,941],{},"Database instances are created lazily on first use and cached for subsequent calls with the same connection name. If a connection name is not configured, an error will be thrown.",[843,943,945],{"id":944},"dbsql",[468,946,947],{},"db.sql",[451,949,950],{},"Execute SQL queries using tagged template literals with automatic parameter binding:",[493,952,954],{"className":495,"code":953,"language":498,"meta":5,"style":5},"const db = useDatabase();\n\n\u002F\u002F Insert with parameterized values (safe from SQL injection)\nconst id = \"1001\";\nawait db.sql`INSERT INTO users VALUES (${id}, 'John', 'Doe', 'john@example.com')`;\n\n\u002F\u002F Query with parameters\nconst { rows } = await db.sql`SELECT * FROM users WHERE id = ${id}`;\n\n\u002F\u002F The result includes rows, changes count, and last insert ID\nconst result = await db.sql`INSERT INTO posts (title) VALUES (${\"Hello\"})`;\n\u002F\u002F result.rows, result.changes, result.lastInsertRowid\n",[468,955,956,968,972,977,991,1010,1014,1019,1045,1049,1054,1074],{"__ignoreMap":5},[502,957,958,960,962,964,966],{"class":504,"line":505},[502,959,889],{"class":508},[502,961,648],{"class":561},[502,963,651],{"class":508},[502,965,654],{"class":542},[502,967,657],{"class":512},[502,969,970],{"class":504,"line":526},[502,971,530],{"emptyLinePlaceholder":529},[502,973,974],{"class":504,"line":533},[502,975,976],{"class":666},"\u002F\u002F Insert with parameterized values (safe from SQL injection)\n",[502,978,979,981,984,986,989],{"class":504,"line":549},[502,980,889],{"class":508},[502,982,983],{"class":561}," id",[502,985,651],{"class":508},[502,987,988],{"class":519}," \"1001\"",[502,990,523],{"class":512},[502,992,993,996,998,1000,1002,1005,1008],{"class":504,"line":555},[502,994,995],{"class":508},"await",[502,997,676],{"class":512},[502,999,679],{"class":542},[502,1001,757],{"class":519},[502,1003,1004],{"class":512},"id",[502,1006,1007],{"class":519},"}, 'John', 'Doe', 'john@example.com')`",[502,1009,523],{"class":512},[502,1011,1012],{"class":504,"line":565},[502,1013,530],{"emptyLinePlaceholder":529},[502,1015,1016],{"class":504,"line":571},[502,1017,1018],{"class":666},"\u002F\u002F Query with parameters\n",[502,1020,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043],{"class":504,"line":670},[502,1022,889],{"class":508},[502,1024,784],{"class":512},[502,1026,787],{"class":561},[502,1028,790],{"class":512},[502,1030,793],{"class":508},[502,1032,796],{"class":508},[502,1034,676],{"class":512},[502,1036,679],{"class":542},[502,1038,803],{"class":519},[502,1040,1004],{"class":512},[502,1042,808],{"class":519},[502,1044,523],{"class":512},[502,1046,1047],{"class":504,"line":687},[502,1048,530],{"emptyLinePlaceholder":529},[502,1050,1051],{"class":504,"line":701},[502,1052,1053],{"class":666},"\u002F\u002F The result includes rows, changes count, and last insert ID\n",[502,1055,1056,1058,1061,1063,1065,1067,1069,1072],{"class":504,"line":706},[502,1057,889],{"class":508},[502,1059,1060],{"class":561}," result",[502,1062,651],{"class":508},[502,1064,796],{"class":508},[502,1066,676],{"class":512},[502,1068,679],{"class":542},[502,1070,1071],{"class":519},"`INSERT INTO posts (title) VALUES (${\"Hello\"})`",[502,1073,523],{"class":512},[502,1075,1076],{"class":504,"line":712},[502,1077,1078],{"class":666},"\u002F\u002F result.rows, result.changes, result.lastInsertRowid\n",[843,1080,1082],{"id":1081},"dbexec",[468,1083,1084],{},"db.exec",[451,1086,1087],{},"Execute a raw SQL string directly:",[493,1089,1091],{"className":495,"code":1090,"language":498,"meta":5,"style":5},"const db = useDatabase();\n\nawait db.exec(\"CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, name TEXT)\");\n",[468,1092,1093,1105,1109],{"__ignoreMap":5},[502,1094,1095,1097,1099,1101,1103],{"class":504,"line":505},[502,1096,889],{"class":508},[502,1098,648],{"class":561},[502,1100,651],{"class":508},[502,1102,654],{"class":542},[502,1104,657],{"class":512},[502,1106,1107],{"class":504,"line":526},[502,1108,530],{"emptyLinePlaceholder":529},[502,1110,1111,1113,1115,1118,1120,1123],{"class":504,"line":533},[502,1112,995],{"class":508},[502,1114,676],{"class":512},[502,1116,1117],{"class":542},"exec",[502,1119,628],{"class":512},[502,1121,1122],{"class":519},"\"CREATE TABLE IF NOT EXISTS users (id TEXT PRIMARY KEY, name TEXT)\"",[502,1124,925],{"class":512},[843,1126,1128],{"id":1127},"dbprepare",[468,1129,1130],{},"db.prepare",[451,1132,1133],{},"Prepare an SQL statement for repeated execution:",[493,1135,1137],{"className":495,"code":1136,"language":498,"meta":5,"style":5},"const db = useDatabase();\n\nconst stmt = db.prepare(\"SELECT * FROM users WHERE id = ?\");\nconst result = await stmt.bind(\"1001\").all();\n",[468,1138,1139,1151,1155,1176],{"__ignoreMap":5},[502,1140,1141,1143,1145,1147,1149],{"class":504,"line":505},[502,1142,889],{"class":508},[502,1144,648],{"class":561},[502,1146,651],{"class":508},[502,1148,654],{"class":542},[502,1150,657],{"class":512},[502,1152,1153],{"class":504,"line":526},[502,1154,530],{"emptyLinePlaceholder":529},[502,1156,1157,1159,1162,1164,1166,1169,1171,1174],{"class":504,"line":533},[502,1158,889],{"class":508},[502,1160,1161],{"class":561}," stmt",[502,1163,651],{"class":508},[502,1165,676],{"class":512},[502,1167,1168],{"class":542},"prepare",[502,1170,628],{"class":512},[502,1172,1173],{"class":519},"\"SELECT * FROM users WHERE id = ?\"",[502,1175,925],{"class":512},[502,1177,1178,1180,1182,1184,1186,1189,1192,1194,1197,1199,1202],{"class":504,"line":549},[502,1179,889],{"class":508},[502,1181,1060],{"class":561},[502,1183,651],{"class":508},[502,1185,796],{"class":508},[502,1187,1188],{"class":512}," stmt.",[502,1190,1191],{"class":542},"bind",[502,1193,628],{"class":512},[502,1195,1196],{"class":519},"\"1001\"",[502,1198,858],{"class":512},[502,1200,1201],{"class":542},"all",[502,1203,657],{"class":512},[576,1205,33],{"id":1206},"configuration",[451,1208,1209,1210,1214,1215,1218,1219,471],{},"You can change the default connection or define additional named connections to any of the ",[460,1211,1213],{"href":462,"rel":1212},[464],"supported databases"," using the ",[468,1216,1217],{},"database"," config, and integrate the database instance with any of the ",[460,1220,1223],{"href":1221,"rel":1222},"https:\u002F\u002Fdb0.unjs.io\u002Fintegrations",[464],"supported ORMs",[493,1225,1227],{"className":495,"code":1226,"filename":497,"language":498,"meta":5,"style":5},"import { defineConfig } from \"nitro\";\n\nexport default defineConfig({\n  database: {\n    default: {\n      connector: \"sqlite\",\n      options: { name: \"db\" }\n    },\n    users: {\n      connector: \"postgresql\",\n      options: {\n        url: \"postgresql:\u002F\u002Fusername:password@hostname:port\u002Fdatabase_name\"\n      },\n    },\n  },\n});\n",[468,1228,1229,1241,1245,1255,1260,1265,1276,1287,1292,1297,1306,1311,1319,1324,1328,1333],{"__ignoreMap":5},[502,1230,1231,1233,1235,1237,1239],{"class":504,"line":505},[502,1232,509],{"class":508},[502,1234,513],{"class":512},[502,1236,516],{"class":508},[502,1238,520],{"class":519},[502,1240,523],{"class":512},[502,1242,1243],{"class":504,"line":526},[502,1244,530],{"emptyLinePlaceholder":529},[502,1246,1247,1249,1251,1253],{"class":504,"line":533},[502,1248,536],{"class":508},[502,1250,539],{"class":508},[502,1252,543],{"class":542},[502,1254,546],{"class":512},[502,1256,1257],{"class":504,"line":549},[502,1258,1259],{"class":512},"  database: {\n",[502,1261,1262],{"class":504,"line":555},[502,1263,1264],{"class":512},"    default: {\n",[502,1266,1267,1270,1273],{"class":504,"line":565},[502,1268,1269],{"class":512},"      connector: ",[502,1271,1272],{"class":519},"\"sqlite\"",[502,1274,1275],{"class":512},",\n",[502,1277,1278,1281,1284],{"class":504,"line":571},[502,1279,1280],{"class":512},"      options: { name: ",[502,1282,1283],{"class":519},"\"db\"",[502,1285,1286],{"class":512}," }\n",[502,1288,1289],{"class":504,"line":670},[502,1290,1291],{"class":512},"    },\n",[502,1293,1294],{"class":504,"line":687},[502,1295,1296],{"class":512},"    users: {\n",[502,1298,1299,1301,1304],{"class":504,"line":701},[502,1300,1269],{"class":512},[502,1302,1303],{"class":519},"\"postgresql\"",[502,1305,1275],{"class":512},[502,1307,1308],{"class":504,"line":706},[502,1309,1310],{"class":512},"      options: {\n",[502,1312,1313,1316],{"class":504,"line":712},[502,1314,1315],{"class":512},"        url: ",[502,1317,1318],{"class":519},"\"postgresql:\u002F\u002Fusername:password@hostname:port\u002Fdatabase_name\"\n",[502,1320,1321],{"class":504,"line":748},[502,1322,1323],{"class":512},"      },\n",[502,1325,1326],{"class":504,"line":768},[502,1327,1291],{"class":512},[502,1329,1330],{"class":504,"line":773},[502,1331,1332],{"class":512},"  },\n",[502,1334,1335],{"class":504,"line":779},[502,1336,841],{"class":512},[843,1338,1340],{"id":1339},"development-database","Development Database",[451,1342,1343,1344,1347,1348,1351],{},"Use the ",[468,1345,1346],{},"devDatabase"," config to override the database configuration ",[455,1349,1350],{},"only for development mode",". This is useful for using a local SQLite database during development while targeting a different database in production.",[493,1353,1355],{"className":495,"code":1354,"filename":497,"language":498,"meta":5,"style":5},"import { defineConfig } from \"nitro\";\n\nexport default defineConfig({\n  database: {\n    default: {\n      connector: \"postgresql\",\n      options: {\n        url: \"postgresql:\u002F\u002Fusername:password@hostname:port\u002Fdatabase_name\"\n      }\n    }\n  },\n  devDatabase: {\n    default: {\n      connector: \"sqlite\",\n      options: { name: \"dev-db\" }\n    }\n  }\n});\n",[468,1356,1357,1369,1373,1383,1387,1391,1399,1403,1409,1414,1419,1423,1428,1432,1440,1449,1453,1457],{"__ignoreMap":5},[502,1358,1359,1361,1363,1365,1367],{"class":504,"line":505},[502,1360,509],{"class":508},[502,1362,513],{"class":512},[502,1364,516],{"class":508},[502,1366,520],{"class":519},[502,1368,523],{"class":512},[502,1370,1371],{"class":504,"line":526},[502,1372,530],{"emptyLinePlaceholder":529},[502,1374,1375,1377,1379,1381],{"class":504,"line":533},[502,1376,536],{"class":508},[502,1378,539],{"class":508},[502,1380,543],{"class":542},[502,1382,546],{"class":512},[502,1384,1385],{"class":504,"line":549},[502,1386,1259],{"class":512},[502,1388,1389],{"class":504,"line":555},[502,1390,1264],{"class":512},[502,1392,1393,1395,1397],{"class":504,"line":565},[502,1394,1269],{"class":512},[502,1396,1303],{"class":519},[502,1398,1275],{"class":512},[502,1400,1401],{"class":504,"line":571},[502,1402,1310],{"class":512},[502,1404,1405,1407],{"class":504,"line":670},[502,1406,1315],{"class":512},[502,1408,1318],{"class":519},[502,1410,1411],{"class":504,"line":687},[502,1412,1413],{"class":512},"      }\n",[502,1415,1416],{"class":504,"line":701},[502,1417,1418],{"class":512},"    }\n",[502,1420,1421],{"class":504,"line":706},[502,1422,1332],{"class":512},[502,1424,1425],{"class":504,"line":712},[502,1426,1427],{"class":512},"  devDatabase: {\n",[502,1429,1430],{"class":504,"line":748},[502,1431,1264],{"class":512},[502,1433,1434,1436,1438],{"class":504,"line":768},[502,1435,1269],{"class":512},[502,1437,1272],{"class":519},[502,1439,1275],{"class":512},[502,1441,1442,1444,1447],{"class":504,"line":773},[502,1443,1280],{"class":512},[502,1445,1446],{"class":519},"\"dev-db\"",[502,1448,1286],{"class":512},[502,1450,1451],{"class":504,"line":779},[502,1452,1418],{"class":512},[502,1454,1455],{"class":504,"line":813},[502,1456,568],{"class":512},[502,1458,1459],{"class":504,"line":818},[502,1460,841],{"class":512},[927,1462,1463],{},[451,1464,1465,1466,1468,1469,1472,1473,1475,1476,471],{},"In development, a provided ",[468,1467,1346],{}," ",[455,1470,1471],{},"replaces"," the ",[468,1474,1217],{}," configuration entirely — connections are not merged per-name. Include every connection you need during development in ",[468,1477,1346],{},[1479,1480,1481],"tip",{},[451,1482,931,1483,1485,1486,1488,1489,1491],{},[468,1484,934],{}," is enabled and no ",[468,1487,1217],{}," or ",[468,1490,1346],{}," config is provided, Nitro automatically configures a default SQLite connection. In development mode, data is stored relative to the project root directory. In Node.js production, it uses the default SQLite path.",[576,1493,1495],{"id":1494},"connectors","Connectors",[451,1497,1498,1499,1504,1505,1508],{},"Nitro supports all ",[460,1500,1503],{"href":1501,"rel":1502},"https:\u002F\u002Fdb0.unjs.io\u002Fconnectors",[464],"db0 connectors",". The ",[468,1506,1507],{},"connector"," field in the database config accepts any of the following values:",[1510,1511,1512,1525],"table",{},[1513,1514,1515],"thead",{},[1516,1517,1518,1522],"tr",{},[1519,1520,1521],"th",{},"Connector",[1519,1523,1524],{},"Description",[1526,1527,1528,1543,1552,1565,1578,1592,1610,1620,1630,1644,1658,1673,1688,1702,1712],"tbody",{},[1516,1529,1530,1536],{},[1531,1532,1533],"td",{},[468,1534,1535],{},"sqlite",[1531,1537,1538,1539,1542],{},"Node.js built-in SQLite (alias for ",[468,1540,1541],{},"node-sqlite",")",[1516,1544,1545,1549],{},[1531,1546,1547],{},[468,1548,1541],{},[1531,1550,1551],{},"Node.js built-in SQLite",[1516,1553,1554,1559],{},[1531,1555,1556],{},[468,1557,1558],{},"better-sqlite3",[1531,1560,1561],{},[460,1562,1558],{"href":1563,"rel":1564},"https:\u002F\u002Fgithub.com\u002FWiseLibs\u002Fbetter-sqlite3",[464],[1516,1566,1567,1572],{},[1531,1568,1569],{},[468,1570,1571],{},"sqlite3",[1531,1573,1574],{},[460,1575,1571],{"href":1576,"rel":1577},"https:\u002F\u002Fgithub.com\u002FTryGhost\u002Fnode-sqlite3",[464],[1516,1579,1580,1589],{},[1531,1581,1582,1585,1586],{},[468,1583,1584],{},"bun"," \u002F ",[468,1587,1588],{},"bun-sqlite",[1531,1590,1591],{},"Bun built-in SQLite",[1516,1593,1594,1602],{},[1531,1595,1596,1585,1599],{},[468,1597,1598],{},"libsql",[468,1600,1601],{},"libsql-node",[1531,1603,1604,1609],{},[460,1605,1608],{"href":1606,"rel":1607},"https:\u002F\u002Fgithub.com\u002Ftursodatabase\u002Flibsql",[464],"libSQL"," (Node.js)",[1516,1611,1612,1617],{},[1531,1613,1614],{},[468,1615,1616],{},"libsql-http",[1531,1618,1619],{},"libSQL over HTTP",[1516,1621,1622,1627],{},[1531,1623,1624],{},[468,1625,1626],{},"libsql-web",[1531,1628,1629],{},"libSQL for web environments",[1516,1631,1632,1637],{},[1531,1633,1634],{},[468,1635,1636],{},"postgresql",[1531,1638,1639],{},[460,1640,1643],{"href":1641,"rel":1642},"https:\u002F\u002Fgithub.com\u002Fporsager\u002Fpostgres",[464],"PostgreSQL",[1516,1645,1646,1651],{},[1531,1647,1648],{},[468,1649,1650],{},"mysql2",[1531,1652,1653],{},[460,1654,1657],{"href":1655,"rel":1656},"https:\u002F\u002Fgithub.com\u002Fsidorares\u002Fnode-mysql2",[464],"MySQL",[1516,1659,1660,1665],{},[1531,1661,1662],{},[468,1663,1664],{},"pglite",[1531,1666,1667,1672],{},[460,1668,1671],{"href":1669,"rel":1670},"https:\u002F\u002Fgithub.com\u002Felectric-sql\u002Fpglite",[464],"PGlite"," (embedded PostgreSQL)",[1516,1674,1675,1680],{},[1531,1676,1677],{},[468,1678,1679],{},"planetscale",[1531,1681,1682,1687],{},[460,1683,1686],{"href":1684,"rel":1685},"https:\u002F\u002Fgithub.com\u002Fplanetscale\u002Fdatabase-js",[464],"PlanetScale"," serverless",[1516,1689,1690,1695],{},[1531,1691,1692],{},[468,1693,1694],{},"cloudflare-d1",[1531,1696,1697],{},[460,1698,1701],{"href":1699,"rel":1700},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fd1\u002F",[464],"Cloudflare D1",[1516,1703,1704,1709],{},[1531,1705,1706],{},[468,1707,1708],{},"cloudflare-hyperdrive-mysql",[1531,1710,1711],{},"Cloudflare Hyperdrive with MySQL",[1516,1713,1714,1719],{},[1531,1715,1716],{},[468,1717,1718],{},"cloudflare-hyperdrive-postgresql",[1531,1720,1721],{},"Cloudflare Hyperdrive with PostgreSQL",[1723,1724,1725],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":5,"searchDepth":526,"depth":526,"links":1727},[1728,1734,1737],{"id":578,"depth":526,"text":579,"children":1729},[1730,1731,1732,1733],{"id":845,"depth":533,"text":848},{"id":944,"depth":533,"text":947},{"id":1081,"depth":533,"text":1084},{"id":1127,"depth":533,"text":1130},{"id":1206,"depth":526,"text":33,"children":1735},[1736],{"id":1339,"depth":533,"text":1340},{"id":1494,"depth":526,"text":1495},"Nitro provides a built-in and lightweight SQL database layer.","md",{"automd":529,"icon":41},{"icon":41},{"title":38,"description":1738},"2yrzIL_k4f4nKEYjJ_MN-XNKcZ3AMDIJ10yRR_BoxcM",[1745,1747],{"title":33,"path":34,"stem":35,"description":1746,"icon":36,"children":-1},"Customize and extend Nitro defaults.",{"title":43,"path":44,"stem":45,"description":1748,"icon":46,"children":-1},"Understand how Nitro runs and serves incoming requests to your application.",1784019064248]