首页 > 解决方案 > 如何从模块上下文运行数据库查询

问题描述

我想database querycontext module.

我想这样做的原因是能够在不向最终用户显示实际原始数据的情况下呈现页面。

当我使用node-fetchSvelteKit FetchJSON 数据显示给最终用户时。

node-fetch通过那个电话制作fetch requestJSON暴露出来。API

Sveltekit Fetch不会进行额外API的调用,而是将原始数据插入到实际呈现的HTML页面中。

所以我认为最好发送queryfrom context module。我如何database拨打电话context module

这是我的代码:

<script context="module">

    import pool from '$lib/db.js';

    export async function load() {
        
        const objects = await pool.query('SELECT * FROM items')

        return {
            props: { objects }
        }
    }

</script>

错误:

500
The requested module '/node_modules/pg/lib/index.js' does not provide an export named 'Pool'
SyntaxError: The requested module '/node_modules/pg/lib/index.js' does not provide an export named 'Pool'

内部db.js

import { Pool } from 'pg';

const pool = new Pool({
    user: "testuser",
    password: "1234567",
    database: "test",
    host: "localhost",
    port: "5432"
});

export default pool;

标签: sveltesvelte-3sveltekit

解决方案


node-postgres pg您尝试导入的库已转译。这意味着您不能像现在这样使用命名导入。

尝试改变:

import { Pool } from 'pg';

和:

import * as pg from 'pg';
const { Pool } = pg;

推荐阅读