Recibo un error cuando realizo una solicitud de obtención con Express desde mi base de datos y no estoy seguro de lo que significa. Aquí hay una forma abreviada del error:
{ error: la relación "películas" no existe en Connection.parseE
Aquí está mi código (server.js):
var express = require('express'); var bodyParser = require('body-parser'); var knex = require("./db/knex"); var movies = require('./routes/movies.js'); var actors = require('./routes/actors.js'); var roles = require('./routes/roles.js'); var app = express(); var port = process.env.PORT || 8000; // body parser app.use(bodyParser.json()); // router // get all app.get("/movies", movies.getAllMovies); app.listen(port, function() { console.log("Now listening on port " + port); });Módulo (películas.js):
var knex = require("../db/knex"); // get all var getAllMovies = function(req, res) { knex.raw('SELECT * FROM movies') .then(function(movies) { res.send(movies.rows); }).catch(function(err) { console.log(err); }); } module.exports = { getAllMovies:getAllMovies, getOneMovie:getOneMovie, postMovie:postMovie, putMovie:putMovie, deleteMovie:deleteMovie }¡Por favor, hágamelo saber si puede encontrar el error!
En realidad lo descubrí. Todas las variables y tablas estaban bien, pero uno de mis archivos de configuración de knex no estaba conectado a la base de datos correcta.
Original:
module.exports = { development: { client: 'pg', connection: 'postgres://localhost/stores', // ** WRONG ** migrations: { directory: __dirname + '/db/migrations', }, seeds: { directory: __dirname + '/db/seeds', }, }, }La línea 4 debería haber dicho:
connection: 'postgres://localhost/movies_and_actors'