2017-09-27 3 views
0

J'essaie de me connecter à une base de données postgres avec Sequelize. Lorsque j'essaie de créer une ligne dans la base de données, le message d'erreur suivant s'affiche. Je ne suis pas sûr pourquoi le port liste 3306 quand l'URL de base de données que j'essaye de se connecter est le port 5432. J'ai essayé de placer le port et le nom d'hôte dans le fichier de config, mais j'obtiens toujours la même erreur.Sequelize ne peut pas se connecter au serveur postgres

{ 
    "name": "SequelizeConnectionRefusedError", 
    "message": "connect ECONNREFUSED 127.0.0.1:3306", 
    "parent": { 
     "code": "ECONNREFUSED", 
     "errno": "ECONNREFUSED", 
     "syscall": "connect", 
     "address": "127.0.0.1", 
     "port": 3306, 
     "fatal": true 
    }, 
    "original": { 
     "code": "ECONNREFUSED", 
     "errno": "ECONNREFUSED", 
     "syscall": "connect", 
     "address": "127.0.0.1", 
     "port": 3306, 
     "fatal": true 
    } 
} 

Je cours mon application dans mon fichier server.js:

const express = require('express') 
const bodyParser = require('body-parser') 
const path = require('path') 
const fs = require('fs') 

const PORT = process.env.PORT || 3000 


// INSTANTIATE EXPRESS APP 
const app = express() 

app.use(bodyParser.urlencoded({ extended: true })) 
app.use(bodyParser.json({ 
    type: function() { 
    return true 
    } 
})) 

// SET VIEW ENGINE 
app.use(express.static(path.join(__dirname, 'public'))) 

require('./src/server/routes')(app) 

app.get('*', function(request, response) { 
    response.sendFile(path.resolve(__dirname, 'public', 'index.html')) 
}) 

// SET FOLDER TO SERVER STATIC ASSETS 
app.use(function(req, res, next) { 
    res.setHeader('Access-Control-Allow-Origin', '*'); 
    res.setHeader('Access-Control-Allow-Credentials', 'true'); 
    res.setHeader('Access-Control-Allow-Methods', 'GET,HEAD,OPTIONS,POST,PUT,DELETE'); 
    res.setHeader(
    "Access-Control-Allow-Headers", 
    "Access-Control-Allow-Headers, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization, username") 
    //and remove cacheing so we get the most recent comments 
    res.setHeader('Cache-Control', 'no-cache'); 
    next(); 
}); 

// SERVER APP 
app.listen(PORT,() => { 
    console.log('Server running on localhost:' + PORT) 
}) 

mon fichier de configuration est configuré pour utiliser une base de données en ligne

{ 
    "development": { 
    "url": "postgres://[email protected]:5432/znjpptuy", 
    "dialect": "postgres", 
    "PORT": 5432, 
    "HOST": "127.0.0.1" 
    } 
} 

Répondre

0

Après un examen plus approfondi, réalisé que l'erreur avait à voir avec l'URL que je passais à la nouvelle instance de séquencer, dans ce cas, le manque d'url.

sequelize = nouveau Sequelize (process.env [config.url]); Processus.env a continué à revenir comme non défini, donc j'ai fini par passer l'URL réelle à la fonction.