Javascript PSQL服务器&x27;关系不存在';通过邮递员发送请求时

Javascript PSQL服务器&x27;关系不存在';通过邮递员发送请求时,javascript,postgresql,postman,psql,Javascript,Postgresql,Postman,Psql,我有一个非常基本的sql文件,代码: \c postgres DROP DATABASE IF EXISTS project1; CREATE DATABASE project1; \c parky CREATE TABLE works ( id SERIAL PRIMARY KEY, workshop TEXT NOT NULL, attendee TEXT NOT NULL ); 这是我的Javascript服务器使用的: require('dotenv').c

我有一个非常基本的sql文件,代码:

\c postgres
DROP DATABASE IF EXISTS project1;
CREATE DATABASE project1;
\c parky

CREATE TABLE works (
    id SERIAL PRIMARY KEY,
    workshop TEXT NOT NULL,
    attendee TEXT NOT NULL
);

这是我的Javascript服务器使用的:

require('dotenv').config()
const bodyParser = require("body-parser");
const express = require("express");
const app = express();

app.set("port", 8080);

app.use(bodyParser.json({ type: "application/json" }));
app.use(bodyParser.urlencoded({ extended: true }));

const Pool = require("pg").Pool;
const config = {
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASS,
    database: "project1"
};
const pool = new Pool(config);

//Add an attendee to workshop
app.post("/api", async (req, res) => {
  const ws = req.body.workshop;
  const att = req.body.attendee;

  try{
    const template = "SELECT * from works WHERE workshop = $1 AND attendee = $2";
     console.log("in the select statement");
    const response = await pool.query(template, [ws, att]);
   
    //if attendee and workshop already exists
    if(response.rowCount != 0){
        res.json({status: "attendee already enrolled"});
    
    } else if (response.rowCount ==0){
    //else if attendee and workshop doesn't exist
    //INSERT the entry
        const template2 = "INSERT INTO works(workshop, attendee) VALUES ($1, $2)";
        console.log("in the insert statement");
        const response1 = await pool.query(template2,  [ws, att]);
    res.json({status: "added"});
    }
    
    }catch (err){
        console.log("Error.")
        console.log(err);
    }
    })
app.listen(app.get("port"), () => {
  console.log(`Find the server at: http://localhost:${app.get("port")}/`); 
});

通过邮递员传递的密钥是:

workshop  : React Fundamentals
attendee  : Claire Kim
但每次我尝试将这些值插入表中时,都会出现以下错误:

error: relation "works" does not exist
关于这一行:

    const template = "SELECT * from works WHERE workshop = $1 AND attendee = $2";
     console.log("in the select statement");
    const response = await pool.query(template, [ws, att]);
但在PSQL中,当我输入select语句时,它工作正常,表“works”就在那里。我的用户“parky”有权选择并插入“works”,也有权按顺序选择works_id_seq表


我已经为此工作了6个小时,但不知道出了什么问题。如果您有任何见解,我们将不胜感激。

如果这是用于创建表的实际SQL文件,那么您将在名为parky的数据库中创建该表

\c parky
的输出应该是这样的:

您现在以用户“postgres”的身份连接到数据库“parky”

这句话大概应该是这样的:
\c project1 parky

可能的问题:1)未连接到正确的数据库实例。检查数据库日志中的连接2)
搜索路径
问题。请尝试对表名进行架构限定。如果我的猜测没有错,请验证不应安装多个版本的PostgreSQL,因为如果存在多个版本,它们可能会在不同的端口(如5433、5434)上运行。否则,您应该检查您的计算机上当前运行的PostgreSQL的端口号。您是一个救星!非常感谢你。我很沮丧