Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

275
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda