Hola, estoy siguiendo un tutorial y tratando de hacer una consulta de inserción simple, pero obtengo un error 404. Estoy tratando de ingresar valores usando el cartero.
función
function insertUser(req, res, next){ req.body.users = parseInt(req.body.users); db.none('INSERT INTO office.users (role_id, office_id, user_name, full_name) ' + 'VALUES (${role_id}, ${office_id}, ${user_name}, ${full_name})', req.body.users) .then(function(){ res.status(200) .json({ status: 'success', message: 'Inserted one user' }); }) .catch(error => { console.log(error); next(); }) }El seguimiento de la pila dice que el problema está cerca de los "valores". No lo entiendo. A continuación, fluyo con la documentación. ¿Hay algún problema con la consulta?
Rastreo de pila
POST /api/users 401 83.997 ms - 43 { [error: error de sintaxis en o cerca de "$"] nombre: 'error', longitud: 102, gravedad: 'ERROR', código: '42601', detalle: indefinido, sugerencia : indefinido, posición: '78', posición interna: indefinido, consulta interna: indefinido, donde: indefinido, esquema: indefinido, tabla: indefinido, columna: indefinido, tipo de datos: indefinido, restricción: indefinido, archivo: 'src\backend\parser\ scan.l', línea: '1053', rutina: 'scanner_yyerror' }
Estoy en mi quinto día con Node. Bear conmigo.
El código de error 42601 es un error de sintaxis de postgres. Si tuviera que imprimir nuestra declaración SQL en la página, vería algo como esto:
"INSERT INTO office.users VALUES (role_id,office_id,user_name,full_name)values(${role_id},${office_id},${user_name},${full_name})" Hay varias cosas mal con esto. Primero, precede su lista de columnas con VALUES . En segundo lugar, no tiene espacio entre su lista de columnas y la palabra clave de values (adecuados). Su declaración debe verse así:
"INSERT INTO office.users (role_id, office_id, user_name, full_name) VALUES (${role_id}, ${office_id}, ${user_name}, ${full_name})"Lo que significa que su javascript debe parecerse más a esto:
db.none('INSERT INTO office.users (role_id, office_id, user_name, full_name) ' + 'VALUES (${role_id}, ${office_id}, ${user_name}, ${full_name})', req.body.users);Error tonto al declarar variable
esto funcionó
db.none('INSERT INTO office.users(role_id, office_id, user_name, full_name, password)' + 'values(${role_id},${office_id},${user_name},${full_name},${password})', req.body)