kha*_*dja 7 postgresql svelte sveltekit
我正在尝试将我的 postgres 数据库连接到我的网络应用程序。根据这篇文章,我的hooks.js
连接设置如下:
export const handle = async ({event, resolve}) => {
event.locals = {
user: 'me',
host: 'localhost',
database: 'test',
password: 'password',
port: 1234,
}
const response = await resolve(event)
return response;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试设置我的端点。如何访问端点中的数据库并设置查询?
我认为您缺少连接数据库的部分。通过上面提供的代码片段,看起来您正在尝试在 locals 变量中传递数据库连接信息,但您需要传递的是数据库连接本身。
首先,您需要一个 Postgres 客户端。您可以使用任何您想要的,我将向您展示与此处找到的 postgresjs 包的连接可能是什么样子
import postgres from 'postgres';
export const handle = async ({event, resolve}) => {
const sql = postgres('postgres://username:password@host:port/database');
event.locals = {
sql: sql
};
const response = await resolve(event);
return response;
};
Run Code Online (Sandbox Code Playgroud)
您必须像上面一样在连接字符串中填写数据库信息,但现在您的端点将可以访问locals
包含 sql 连接的对象。
下一个:
export async function get({ locals }) {
// destructure to get the sql connection
const { sql } = locals;
// Do work with the connection
// different connection libraries will do this in different ways
// postgres.js uses tagged template literals,
// and you pass in sql statements
const result = await sql`SELECT name, age FROM users`;
// Now you have a result object that contains the query response
// Do what you need to do from here
... code to work with result ...
};
Run Code Online (Sandbox Code Playgroud)
发送响应所需的其余内容等都记录在Sveltekit 文档中。这里的关键要点是您在文件中设置连接hooks.js
,然后将其与请求一起传递到端点处理程序。这将您的设置逻辑集中在一处。
另外,如果您不熟悉 Javascript 的 postgres 库,请尝试一些。postgres.js 的设计简单明了,就像pg一样。您还可以升级到为您做更多事情的库,例如sequelize或prisma
我个人是 Prisma 的忠实粉丝,但我鼓励您尝试并找到最适合您的。
归档时间: |
|
查看次数: |
9040 次 |
最近记录: |