Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

260
Vistas
Encuentro que la solicitud CRUD no funciona: Nodejs

Trabajo para una API de Nodejs y este es un archivo de controlador:

 import express, { Request, Response } from 'express'; import { ProductStore, Product } from '../models/products'; const store = new ProductStore(); /* export type Product = { id?: number; name: string; price: number; category?: string; }; */ const index = async (_req: Request, res: Response) => { const products = await store.index(); res.json(products); }; const show = async (_req: Request, res: Response) => { const product = await store.show(_req.body.id); res.json(product); }; const productRoutes = (app: express.Application) => { app.get('/products', index); app.get('/products/:id', show); app.post('/products', create); app.delete('/products', destroy); }; export default productRoutes;

El archivo del modelo respectivo es:

 import client from '../database'; export type Product = { id?: number; name: string; price: number; category?: string; }; export class ProductStore { async index(): Promise<Product[]> { try { // @ts-ignore const conn = await client.connect(); const sql = 'SELECT * FROM products'; const result = await conn.query(sql); conn.release(); return result.rows; } catch (err) { throw new Error(`Could not GET products with error: ${err}`); } } async show(id: number): Promise<Product> { try { const sql = 'SELECT * FROM products WHERE id=($1)'; // @ts-ignore const conn = await client.connect(); const result = await conn.query(sql, [id]); conn.release(); return result.rows[0]; } catch (err) { throw new Error(`Could not find product ${id} with error: ${err}`); } } }

Cuando trato de indexar todos los productos, esto funciona bien, pero no puedo buscar solo un producto para mostrar.

ingrese la descripción de la imagen aquí

La API está aquí en caso de que alguien quiera mirar: https://github.com/Chaklader/StorefrontAPI

La consulta SQL funciona en la terminal de Postgres. ¿Cuál es el problema aquí?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Reemplace su segunda cadena de consulta con esto:

 const sql = 'SELECT * FROM products WHERE id=$1';
over 4 years ago · Santiago Trujillo Denunciar

0

Este problema fue que proporcioné el parámetro con la URL, tendré que extraerlo en consecuencia y no del cuerpo. Este es el código que funciona:

 const show = async (_req: Request, res: Response) => { const c = parseInt(_req.params.id); const product = await store.show(c); res.json(product); };

Además, la consulta SQL mencionada en la respuesta anterior es incorrecta y se puede usar tal como se proporciona en la pregunta.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda