2017-10-17 3 views
3

Je suis un novice à Nodejs. Je crée des apis en utilisant node, express et Postgres DB.404 Erreur non trouvée dans Postgres et NodeJs api (Peut être en double)

const {Pool} = require('pg'); 



//const connectionString = process.env.DATABASE_URL || 'postgres://localhost:5432/springmvctutorial'; 

var http = require("http"); 
var express = require('express'); 
const router = express.Router(); 
const app = express(); 
var bodyParser = require('body-parser'); 

var apiVersion = '/api/v1/'; 


const poo = new Pool({ 
    database: 'springmvctutorial', 
    host: 'localhost', 
    user: 'postgres', 
    password : 'root', 
    port: 5432, 
    max: 20, 
    idleTimeoutMillis: 30000, 
    connectionTimeoutMillis: 2000, 
}) 



app.use(bodyParser.json());  // to support JSON-encoded bodies 
app.use(bodyParser.urlencoded({  // to support URL-encoded bodies 
    extended: true 
})); 

//create app server 
var server = app.listen(3030, "localhost", function() { 
    var host = server.address().address 
    var port = server.address().port 
    console.log("Example app listening at http://%s:%s", host, port) 
}); 


router.post('/api/v1/postData', (req, res, next) => { 

    poo.connect((err, client, release) => { 
    if (err) { 
     return console.error('Error acquiring client', err.stack); 
    } 
    client.query('INSERT INTO items(text, complete) values(1,false)', (err, result) => { 
     release(); 
     if (err) { 
     return console.error('Error executing query', err.stack); 
     } 
     console.log(result.rows); 
    }); 
    }); 

}); 

module.exports = router; 

Ma table et ma base de données ont été créées. J'ai vérifié auprès de Postgres CLI. Mais quand j'exécute mon fichier main.js en utilisant le noeud main.js. Il commence à écouter le port sur l'hôte local, mais quand je tire,

http://127.0.0.1:3030/api/v1/postData 

Il donne 404 erreur de ressource non trouvée.

Mon entrée de postier est

{ 
"text":"[email protected]", 
"complete": true 
} 

Je suis tout à fait nouveau pour le développement Web. Alors s'il te plaît, nue avec moi si ça semble idiot.

+0

pouvez-vous nous fournir le lien de vous frapper et si elle est la poste ou obtenir? avez-vous essayé de frapper par localhost? –

+0

J'essaye de l'hôte local. C'est la demande de poste. – Custadian

Répondre

2

essayer comme ça, je ne l'ai pas tester en raison de je n'ai pas l'environnement dans cette machine

const {Pool} = require('pg'); 
//const connectionString = process.env.DATABASE_URL || 'postgres://localhost:5432/springmvctutorial'; 
var http = require("http"); 
var express = require('express'); 
const app = express(); 
var bodyParser = require('body-parser'); 

var apiVersion = '/api/v1/'; 
const poo = new Pool({ 
    database: 'springmvctutorial', 
    host: 'localhost', 
    user: 'postgres', 
    password : 'root', 
    port: 5432, 
    max: 20, 
    idleTimeoutMillis: 30000, 
    connectionTimeoutMillis: 2000, 
}) 
app.use(bodyParser.json());  // to support JSON-encoded bodies 
app.use(bodyParser.urlencoded({  // to support URL-encoded bodies 
    extended: true 
})); 

//create app server 
app.listen(3030, "localhost", function() { 
    var host = server.address().address 
    var port = server.address().port 
    console.log("Example app listening at http://%s:%s", host, port) 
}); 


app.post('/api/v1/postData', (req, res, next) => { 

    poo.connect((err, client, release) => { 
    if (err) { 
     return console.error('Error acquiring client', err.stack); 
    } 
    client.query('INSERT INTO items(text, complete) values(1,false)', (err, result) => { 
     release(); 
     if (err) { 
     return console.error('Error executing query', err.stack); 
     } 
     console.log(result.rows); 
    }); 
    }); 

}); 
+0

Non @Basil, Il ne fonctionne pas.Il lance ReferenceError: le serveur n'est pas défini. Je pense, nous avons besoin de serveur var pour obtenir l'adresse et le port. – Custadian

+0

Eh bien, je vous ai dit parce que je n'ai pas l'environnement dans cette machine s'il vous plaît supprimer var host = server.address(). Adresse var port = server.address(). Port ils sont inutiles maintenant et laissez-moi savoir si vous avez une mise à jour :) –

+0

Après avoir supprimé le code référencé du serveur. Ça a marché. Pouvez-vous s'il vous plaît me dire pourquoi cela se produisait de sorte que je ne vais pas répéter à l'avenir parce que le même code fonctionnait avec MySql. (Code d'écoute du port du serveur.) – Custadian