如何在服务器插件中设置数据库连接

问题描述 投票:0回答:1

我想在服务器插件中设置与 PostgreDB 的连接,以便我可以在需要时使用它(我使用 pg-promise 因为我发现命名参数更方便)。

~/server/plugins/connectdb.ts

import pgPromise from 'pg-promise'
     
export default defineNitroPlugin(() => {
    console.log('Initializing DB connection')
    const pgp = pgPromise({})
    try {       
        const db = pgp('postgres://user:pwd@localhost:5432/mydb')
    } catch (error) {
        console.error("Error: "+error);
        return process.exit(1) 
    }
})

然后在

~/api/getlist.ts

export default defineEventHandler((event) => {
    console.log(db);
})

但是这里

db
是未知的。如果我在初始化后运行查询,我可以在 Postgres 日志中看到连接。我尝试添加:

export let db;

import
export default
之间(并在代码中将
const db
更改为
let db
),但这不会改变任何内容。我想我想要的是一个全局变量来存储连接。

vuejs3 nuxtjs3
1个回答
0
投票

我定义了一个服务器实用程序,它运行得很好:

~/server/utils/dbconnect.js

import pgPromise from 'pg-promise'

const pgp = pgPromise({})
export let usePg = pgp('postgres://user:pwd@localhost:5432/mydb')

然后自动导入功能就发挥了它的魔力,

usePg
随处可用。

© www.soinside.com 2019 - 2024. All rights reserved.