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

262
Vistas
NodeJS + Express: el servidor no puede resolver las solicitudes GET, PUT, POST o DELETE (Estado 404)

server.js

 const express = require('express') const dotenv = require('dotenv').config() const port = process.env.PORT ||9999 const goals = require('./routes/goalRoutes') const app = express() app.use('/api/goals', goals) app.listen(port, () => console.log(`Server started on port ${port}`))

goalRoutes.js define una ruta api/goals

 const express = require('express') const router = express.Router() const { createGoal, getGoals, updateGoal, deleteGoal, } = require('../controllers/goalController') router.route('/').post(createGoal).get(getGoals) router.route('/:id').put(updateGoal).delete(deleteGoal) module.exports = router

goalController.js da funcionalidad a esa ruta

 //@desc Create goal //@route POST /api/goals //@access Private const createGoal = (err, req, res, next) => { res.status(200).json({message: "Create goal"}) } //@desc Get goals //@route GET /api/goals //@access Private const getGoals = (err, req, res, next) => { res.status(200).json({message: "Read goals"}) } //@desc Update goal //@route PUT /api/goals:id //@access Private const updateGoal = (err, req, res, next) => { res.status(200).json({message: `Update this goal: ${req.params.id}`}) } //@desc Get goals //@route DELETE /api/goal/:id //@access Private const deleteGoal = (err, req, res, next) => { res.status(200).json({message: `Delete this goal: ${req.params.id}`}) } module.exports = { createGoal, getGoals, updateGoal, deleteGoal, }

Creé una ruta (pensada como /api/goals ) y controladores para esa ruta. Luego usé los controladores que se encuentran en goalController.js para manejar las solicitudes GET, PUT, POST y DELETE y las conecté a goalRoutes.js .

Usando Postman para realizar pruebas, solo puedo resolver estas solicitudes con un estado 404.

Mi proceso de pensamiento inicial fue que no importé correctamente las funciones del controlador en goalRoutes.js , pero parece que las exporté como un objeto muy bien y Node no parece tener ningún problema con nada en el tiempo de ejecución.

Solía tener el cuerpo de las funciones de los controladores dentro de las funciones de devolución de llamada de router.get , router.post , router.put y router.delete , pero eso era realmente complicado. Preferiría fuertemente no volver a ese lío.

Estoy en una pérdida. ¿Qué detiene las funciones de devolución de llamada de router.route para usar las funciones del controlador? ¿Por qué Postman recibe 404?

Me disculpo si mi terminología apesta. Soy un principiante total en Javascript.

about 4 years ago · Santiago Gelvez
2 Respuestas
Responde la pregunta

0

Ha registrado todos sus controladores como middleware de manejo de errores .

Defina funciones de middleware de manejo de errores de la misma manera que otras funciones de middleware, excepto que las funciones de manejo de errores tienen cuatro argumentos en lugar de tres: (err, req, res, next)

Eliminar los primeros parámetros de err de cada uno de ellos

 const createGoal = (req, res, next) => { res.json({message: "Create goal"}) } const getGoals = (req, res, next) => { res.json({message: "Read goals"}) } const updateGoal = (req, res, next) => { res.json({message: `Update this goal: ${req.params.id}`}) } const deleteGoal = (req, res, next) => { res.json({message: `Delete this goal: ${req.params.id}`}) }

FYI, el estado de respuesta predeterminado cuando se usa res.json() es 200.

about 4 years ago · Santiago Gelvez Denunciar

0

si usa la importación del módulo nodejs, intente implementar esto en su código, funciona

 export default ()=> { const app = Router() RolesRoute(app) auth(app) FlightRoute(app) MaintenanceRoute(app) Books(app) app.use('/user',UserRoute()) app.use('/engineer', EngineerRoute()) app.use('/instructor', InstructorRoute()) return app }

Rutas de autenticación

 import { Router } from 'express' import {AuthValidator} from "../../../lib/validator"; import AuthController from "../../../controllers/auth.controller"; import {isAdmin, isAuth} from "../../../lib/middleware/auth"; const route = Router(); export default (app)=> { app.use('/auth', route); /** * Sign in */ route.post("/signIn", AuthValidator.signInValidator, AuthController.signIn) }
about 4 years ago · Santiago Gelvez 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