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

383
Vistas
node.js: no se puede obtener el valor de retorno de la función auxiliar

soy muy nuevo en node.js, javascript, etc. así que no tengo experiencia. Tengo un problema al intentar obtener un valor de retorno de una función auxiliar en mi controlador. La función auxiliar tiene la intención de obtener un valor de una base de datos mongodb y devolverlo al controlador principal. Pero cuando llamo a la función auxiliar, obtengo un resultado indefinido. Puse un archivo console.log dentro de la función auxiliar y los datos de la base de datos se recuperan correctamente. Por favor ayuda. Este es mi código de controlador.

 var validator = require("validator"); var Necesidad = require("../models/necesidad"); var NecesidadCategoria = require("../models/necesidad_categoria"); var helpers = require("../controllers/helpers/index.js"); const necesidad_categoria = require("../models/necesidad_categoria"); var controller = { new: (req, res) => { var params = req.body; try { var validateNombre = !validator.isEmpty(params.nombre); var validateCantidad = params.cantidad >= 0; if (validateNombre && validateCantidad) { var necesidad = new Necesidad(); necesidad.nece_nombre = params.nombre; necesidad.nece_cantidad = params.cantidad; necesidad.nece_estado = 0; necesidad.nece_imagen = ""; var args = { cat_nombre: params.cat_nombre }; var categoria = helpers.getNecesidadCategoria(args); console.log("categoria: " + categoria); necesidad.save((err, necesidadStored) => { if (err || !necesidadStored) { return res.status(404).send({ status: "error", message: "Los datos no fueron guardados: " + err, }); } return res.status(200).send({ status: "success", necesidad: necesidadStored, }); }); } else { return res.status(200).send({ status: "error", message: "Error de validación de datos.", }); } } catch (err) { return res.status(200).send({ status: "error", message: "Error de validación de datos. Traza completa: " + err, }); } }, }; module.exports = controller;

Y esta es mi función auxiliar:

 var validator = require("validator"); var NecesidadCategoria = require("/ProyectosAngular/SeminarioFinalBackend/models/necesidad_categoria"); module.exports = { getNecesidadCategoria: function (args) { var nombre = args.cat_nombre; var nombreValidation = !validator.isEmpty(nombre); if (nombreValidation) { NecesidadCategoria.findOne( { cat_nombre: nombre }, function (err, necesidad_categoria) { if (err || !necesidad_categoria) { return null; } else { console.log("categoria function:" + necesidad_categoria); return necesidad_categoria; } } ); } }, };
about 4 years ago · Juan Pablo Isaza
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