postgresql 如何将React连接到Vercel上的Postgres

zpf6vheq  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(211)

这就是我得到的错误。

Uncaught (in promise) VercelPostgresError: VercelPostgresError - 'missing_connection_string': You did not supply a 'connectionString' and no 'POSTGRES_URL' env var was found.

这是我的代码。
cndb.js

import { sql, db } from "@vercel/postgres";

export default async function handler(req, res) {
    const client = await db.connect({
        POSTGRES_URL: process.env.local.POSTGRES_URL,
    });
    try {
        await client.sql`CREATE TABLE Things (  Name varchar(255), Pass varchar(255) );`;
        const names = ["thinga", "thingb"];
        await client.sql`INSERT INTO Things (Name,Pass) VALUES (${names[0]},${names[1]});`;
    } catch (error) {
        return res.status(500).json({ error });
    }
    const things = await client.sql`SELECT * FROM Things;`;
    return res.status(200).json({ things });
}

page0.js

import { Link } from "react-router-dom";
import { useState } from "react";

import handler from "./api/cndb";

import "./page0.css";

export function Page0() {
    const [inputvalue, setinputvalue] = useState("");
    return (
        <>
            <div className="Circle" onClick={() => handler(null, null)}>
                submit
            </div>
        <>
    );
}

这是我的文件结构

我试过创建.env.local和.env.development.local和.env文件,但对我不起作用。在cndb.js中,我不确定我在const client = await db.connect({})下的内容是否正确。我也不确定我在page0.js中调用handle的方式。我试着把它部署到localhost和vercel。
这种查看数据库的方式http://localhost:3000/API/cndb是否与react-router-dom和我的文件结构一起工作?

jfewjypa

jfewjypa1#

环境变量不会从Vercel上的.env文件加载。您需要将它们添加到Vercel部署设置中。

您可以在这里添加POSTGRES_URL环境变量,在您的项目->设置->环境变量。
关于你的截图,我注意到的另一件事是,你的.env文件没有被忽略--确保不要将它推送到GitHub!

相关问题