I am trying to insert a new movie to Postgres SQL via postman, but I can not. Is there someone who could help me?
Here are the captures from the postman: enter image description here enter image description here When I post the new movie, there always said: "Cannot POST /api/movies".
Here is my code:
const db = require('./dbconfig');
// Get all movies
const getAllMovies = (req, res) => {
db.query('SELECT * FROM movies', (err, result) => {
if (err)
console.error(err);
else
res.json(result.rows)
})
}
// Get movie by id
const getMovieById = (req, res) => {
const query = {
text: 'SELECT * FROM movies WHERE id = $1',
values: [req.params.id],
}
db.query(query, (err, result) => {
if (err) {
return console.error('Error executing query', err.stack)
}
else {
if (result.rows.length > 0)
res.json(result.rows);
else
res.status(404).end();
}
})
}
// Add new movie
const addMovie = (req, res) => {
// Extract movie from the request body
const newMovie = req.body;
const query = {
text: 'INSERT INTO movies (title, director, year) VALUES ($1, $2, $3)',
values: [newMovie.title, newMovie.director, newMovie.year],
}
db.query(query, (err, res) => {
if (err) {
return console.error('Error executing query', err.stack)
}
})
res.json(newMovie);
}
res.status(204).end();
}
module.exports = {
getAllMovies: getAllMovies,
getMovieById: getMovieById,
addMovie: addMovie,
}
// index.js
const express = require('express');
const bodyParser = require('body-parser');
const query = require('./db/movies');
const app = express();
app.use(bodyParser.json());
const port = 3000;
app.get("/api/movies", query.getAllMovies);
app.get("/api/movies/:id", query.getMovieById);
app.post("/api/movies", query.addMovie);
app.listen(port, () => {{}
console.log(`Server is running on port ${port}.`);
});