tengo una mesa:
CREATE TABLE IF NOT EXISTS bands ( id serial PRIMARY KEY, name VARCHAR UNIQUE NOT NULL, creationDate DATE not NULL, years DATE not NULL ); Solo quiero pasar el name y la creation date . lo que quiero es que los years devuelvan la currentdate - creationDate . El problema es que realmente no sé dónde debo cambiar correctamente mi código, porque estoy usando Node project . Mi código se ve así:
const express = require("express"); const app = express(); const pool = require("./db"); app.use(express.json()); // Routes app.post("/bands", async (req, res) => { try { const { name, creationDate } = req.body; const newBand = await pool.query( "INSERT INTO bands (name, creationDate,years) VALUES ($1, $2) RETURNING *", [name, creationDate] ); res.json(newBand); } catch (err) { console.error(err.message); } }); app.get("/bands", async (req, res) => { try { const allBands = await pool.query("SELECT * FROM bands"); res.json(allBands); console.log(allBands); } catch (err) { console.error(err.message); } }); app.get("/bands/:bandsName", async (req, res) => { console.log(req.params); const { bandsName } = req.params; try { const todo = await pool.query("SELECT * FROM bands WHERE name = $1", [ bandsName, ]); res.json(todo.rows[0]); } catch (err) { console.error(err.message); } }); app.put("/bands/:id", async (req, res) => { try { const { id } = req.params; const { name, creationDate } = req.body; const updateTodo = await pool.query( "UPDATE band SET name = $1, creationDate = $2 WHERE id = $3", [name, creationDate, id] ); res.json("Udało się, zaaktualizowane"); } catch (err) { console.error(err.message); } }); app.delete("/bands/:id", async (req, res) => { try { const { id } = req.params; const deleteTodo = await pool.query("DELETE FROM bands WHERE id = $1", [ id, ]); res.json("Usunięto"); } catch (err) { console.error(err.message); } }); app.listen(3000, () => { console.log("server is listening on port 3000"); }); ¿Alguien puede decirme dónde debo cambiar mi código para que los "years" se calculen automáticamente sin tener que poner los datos en el cartero?
const { name, creationDate } = req.body; const d = new Date(creationDate ); const year = d.getFullYear();Crear un objeto de fecha y recuperar el año lo haría