learning express y, por alguna razón, el cuerpo de mi solicitud es NULL para ambos parámetros
mi archivo completo para index.js:
const express = require('express') const bodyParser = require('body-parser') const app = express() const port = 3000 const db = require('./queries') app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true })); app.get('/',(request, response) => { response.json({info: 'express and postgresapi'}) }) app.post('/users', db.createUser) app.listen(port, () => { console.log(`App running on port ${port}.`) })y mi archivo de consultas donde estoy haciendo el POST
const Pool = require('pg').Pool const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'chatDb', password: 'password1', port: 5432, }) const createUser = (request, response) => { const { name, email } = request.body console.log(request.query); pool.query('INSERT INTO users (name, email) VALUES ($1, $2)', [name, email], (error, results) => { if (error) { console.log(request.body) throw error } response.status(201).send(`User added with ID: ${results.insertId}`) })}
así que esto realmente SÍ se publica, pero cuando miro las filas en mi base de datos son como
ID name email 20 NULL NULLmi curl es curl --data "name=Elaine&email=elaine@example.com" http://localhost:3000/users
también, el resultado de console.log(request.query); es {}
Oye, necesitas pasar un objeto si estás usando cartero
{ "name":"your name here", "email":"email that you want" }Espero que esto ayude
const createUser = (request, response) => { const { name, email } = request.query; pool.query('INSERT INTO users (name, email) VALUES ($1, $2)', [name, email], (error, results) => { if (error) { console.log(request.body) throw error } response.status(201).send(`User added with ID: ${results.insertId}`) }) const createUser = (request, response) => { const { name, email } = request.body; pool.query('INSERT INTO users (name, email) VALUES ($1, $2)', [name, email], (error, results) => { if (error) { console.log(request.body) throw error } response.status(201).send(`User added with ID: ${results.insertId}`) })** puede abrir su cartero y obtendrá dos opciones Params y Body Options. Si selecciona Cuerpo, envíe el cuerpo de la solicitud utilizando el formato urlencode o json porque agregó el analizador de cuerpo:
app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true }));