Я успешно развернул свое приложение на heroku. Но это не загружает мои данные. После исследования нескольких статей и руководств я нигде не нашел, как подключить мои локальные данные postgresql к аддонам heroku.
Мое приложение отлично работает локально. Когда я проверил проблему в браузере, она показала connect ECONNREFUSED 127.0.0.1:5432
.
Я добавляю дополнения Heroku postgres и добавляю учетные данные в настройки базы данных, но все равно не работает. Я полностью потерян.
Это мои настройки базы данных
const sequelize = require("./node_modules/sequelize");
var con = new sequelize("image", "postgres", "password", {
host: "localhost", //i think the error comes from here
dialect: "postgres",
pool: {
max: 5,
min: 0,
idle: 10000
}
});
const Person = con.define("person", {
image: {
type: sequelize.STRING,
allowNull: false
},
firstname: {
type: sequelize.STRING,
allowNull: false
},
lastname: {
type: sequelize.STRING,
allowNull: false
},
email: {
type: sequelize.STRING,
allowNull: false,
validate: {
isEmail: true
}
}
});
const Post = con.define("post", {
title: { type: sequelize.STRING },
content: { type: sequelize.STRING },
personid: { type: sequelize.INTEGER, foreignKey: true }
});
const Parent = con.define("parent", {
father: { type: sequelize.STRING },
mother: { type: sequelize.STRING },
personid: { type: sequelize.INTEGER }
});
//con.sync({ force: true });
module.exports = con;
Это мой Node js 'express сервер
const express = require("express");
const app = express();
const graphqlHTTP = require("express-graphql");
const schema = require("./schema");
const cors = require("cors");
const path = require("path");
app.use(cors());
app.use(
"/graphql",
graphqlHTTP({
schema,
pretty: true,
graphiql: true
})
);
app.use(express.static("build"));
app.get("*", (req, res) => {
res.sendFile(path.resolve(__dirname, "build", index.html));
});
const port = process.env.PORT || 8081;
app.listen(port, () =>
console.log(`✅ Example app listening on port ${port}!`)
);
Я изменил свою базу данных следующим образом
require("dotenv").config();
const sequelize = require("./node_modules/sequelize");
const con = new sequelize(process.env.DATABASE_URL, {
dialect: "postgres",
protocol: "postgres",
dialectOptions: {
ssl: true
}
});
Теперь она отлично работает на моем ноутбуке, но не работает на других устройствах.
Вот ссылка: https://apask.herokuapp.com/