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