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

96
Vistas
Error al pasar varios middlewares en Editar ruta

Recibo el siguiente error cuando intento pasar varios middlewares en mi ruta de edición.

el error es:

Route.put() requiere una función de devolución de llamada pero obtuvo un [objeto Objeto]

Este es el código:

 const auth = require('../middleware/auth') const admin = require('../middleware/admin') router.put('/inflow/item/:id', [auth, admin],async (req, res) => { const brand = await Brand.findOne({ brand: req.body.brand }) const existingItem = await Stocks.findById(req.params.id) const item = { 'productname' : req.body.productname, 'quantity' : existingItem.quantity + req.body.quantity, 'brand' : brand._id, } const logChanges = { 'quantityAdded' : req.body.quantity, 'author' : 'Peter' } console.log(logChanges) const update = { $set : item, $push : {logAddition : logChanges} } console.log(item) const stocks = Stocks.findByIdAndUpdate(req.params.id, update,{new: true}, (err, updateListing) => { if(err){ res.status(404).send({success: false, msg: err.message}) } console.log(updateListing) res.json(updateListing) }) })

El error desaparece cuando elimino uno de los middlewares. Como esto:

 router.put('/inflow/item/:id', [auth, admin],async (req, res) => { }

A continuación se muestran los fragmentos de código para los middlewares de auth y admin :

Autorización

 const jwt = require('jsonwebtoken') const config = require('config') module.exports = function (req, res, next){ const token = req.header('x-auth-token') if (!token) return res.status(401).send('Access Denied. No token provided') res.status(401) try { const decoded = jwt.verify(token, config.get('jwtPrivatekey')) req.user = decoded next() // we either terminate process or we pass control }catch(ex){ res.status(400).send('Invalid Token', ex.message) } }

Administración

 module.exports = function(req, res, next) { //401 Unauthorized - no json webtoken //403 Forbideen - you tried again but still cannot access if(!req.user.isAdmin) return res.status(403).send('Access denied') next() }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

O no ha compartido el código completo del controlador de ruta de edit . O olvidó exportar el objeto del enrutador en el archivo del controlador.

 router.put('/inflow/item/:id', [auth, admin],async (req, res) => { } // I think you've missed this line module.exports = router;

Obtenga más información sobre la definición y el uso de módulos de ruta separados .

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