【问题标题】:RELATION "customers " does not exist but in fact exits关系“客户”不存在但实际上存在
【发布时间】:2022-01-11 08:16:45
【问题描述】:

我试图建立一个简单的网站,但是当尝试插入我的 Heroku 数据库时,它说我的关系(表)不存在但实际上存在!!..我通过 Heroku 提供的 database_url 连接,当我连接时通过我的命令行并插入新行,它们被添加,我可以看到它们的表和数据,但是当我每次在表单中点击首脑会议时尝试插入数据时,就会弹出错误,就像没有具有该名称的表一样..

const express = require('express');
app =  express();
require('dotenv').config()
var sslRedirect  = require("heroku-ssl-redirect").default;
var compression = require('compression');
const { Client } = require('pg');
const client = new Client({
  connectionString: process.env.DATABASE_URL,
})

//MIDDLEWARE
app.set("port",process.env.PORT || 3000);
app.set("view engine", "ejs");
app.use(sslRedirect());
app.disable('x-powered-by');
app.use(compression());
app.use(express.static("public"));
app.use(express.json());
app.use(
    express.urlencoded({
        extended:false
    })
);
app.use
const errorController  = require('./controllers/errorController');
//const middleware = require('./controllers/middleware')

//ROUTES

app.get('/',(req,res,next) => {
    res.render('test')
});
app.post('/thanks', async (req, res) => {
    
    data = {
            name : req.body.name,
            email : req.body.email,
            service: req.body.service,
            message: req.body.message};
    
    const text ='INSERT INTO customers(name,email,service,message) VALUES($1, 2$, 3$, 4$)   RETURNING *;'
const values =  [data.name, data.email, data.service,   data.message];
    
    client.connect()
      try {
        const res = await client.query(`INSERT INTO customers (name,email,service,message) VALUES(${data.name},${data.email},${data.service},${data.message}) RETURNING *;`);
        console.log(res.row[1])
        client.end()
    
      }catch (err) {
        console.log(err.stack)
        client.end()
      }
      res.render('thanks')
})
app.get('/contact',(req,res) => {
        res.render('contact')
})

app.get("/services" , (req,res) => {
           res.render('services')
})

app.get("/about" , (req,res) => {
        res.render("about")
})

app.get('/maysspabeauty.com/contact/*' , (req , res) => {
       res.render('contact')
})


app.use(errorController.pageNotFoundError);
app.use(errorController.internalServerError)
app.listen(app.get("port"), () => {
    console.log(`server running at http://localhost:${app.get("port")}`);
});

这里是错误截图error image

【问题讨论】:

  • 请在问题中发布您的代码,而不是指向它的绘画的链接。
  • 您确定您的代码与您连接到正确(相同)的数据库吗?
  • 是的,我通过 Heroku 提供的 database_url 连接了,当我在命令行中使用 Heroku 配置时,我可以验证 url 与我通过他们的站点访问数据库并查看配置变量,感谢您的回答
  • 您在什么架构中创建了customers?是否在search_path 上用于客户端连接?
  • 我使用的架构是 Postgres 为您创建的架构!公共架构,我相信我的 search_path 将是我的 database_url?他们提供给我

标签: node.js postgresql


【解决方案1】:

解决了这个......似乎我的问题只是我使用的是heroku hobby-dynos,它们不打算用于生产......在我升级dynos之后,它只是给我这个错误(不主机的 pg_hba.conf 条目)我仅使用 ssl 修复“{ ssl: 拒绝未授权:假 };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-23
    • 2013-01-03
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    相关资源
    最近更新 更多