Guide
SQL 数据库
¥SQL Database
Nitro 提供了一个内置的轻量级 SQL 数据库层。
默认数据库连接已预配置为 SQLite,可用于开发模式和任何兼容 Node.js 的生产部署,开箱即用。默认情况下,数据将存储在 .data/db.sqlite3
中。
¥The default database connection is preconfigured with SQLite and works out of the box for development mode and any Node.js compatible production deployments. By default, data will be stored in .data/db.sqlite3
.
你可以更改默认连接或定义与任何 支持的数据库 的连接。
你可以将数据库实例集成到任何 支持的 ORM。
选择加入实验性功能
¥Opt-in to the experimental feature
数据库支持目前处于实验阶段。请参考 db0 问题 获取状态和错误报告。
为了启用数据库层,你需要启用实验性功能标志。
¥In order to enable database layer you need to enable experimental feature flag.
export default defineNitroConfig({
experimental: {
database: true
}
})
用法
¥Usage
index.ts
export default defineEventHandler(async () => {
const db = useDatabase();
// Create users table
await db.sql`DROP TABLE IF EXISTS users`;
await db.sql`CREATE TABLE IF NOT EXISTS users ("id" TEXT PRIMARY KEY, "firstName" TEXT, "lastName" TEXT, "email" TEXT)`;
// Add a new user
const userId = String(Math.round(Math.random() * 10_000));
await db.sql`INSERT INTO users VALUES (${userId}, 'John', 'Doe', '')`;
// Query for users
const { rows } = await db.sql`SELECT * FROM users WHERE id = ${userId}`;
return {
rows,
};
});
配置
¥Configuration
你可以使用 database
配置配置数据库连接:
¥You can configure database connections using database
config:
export default defineNitroConfig({
database: {
default: {
connector: 'sqlite',
options: { name: 'db' }
},
users: {
connector: 'postgresql',
url: 'postgresql://username:password@hostname:port/database_name'
}
}
})
你只能在开发模式下使用
devDatabase
配置覆盖数据库配置。