Actualmente tengo mi configuración de código en 3 archivos: Search.model.js , Search.repository.js y search.controller.js .
El problema es que cuando envío una solicitud a la ruta, llega al controlador pero no puede llamar a la función en el repositorio. El código está abajo:
search.repository.js
const mongoose = require('mongoose'); const Search = require('../models/search.model'); const perPage = config.PAGINATION_PERPAGE; const searchRepository = { save: async (data) => { console.log("Reached save in Repository"); try { let record = await Search.create(data); if (!record) { return null; } return record; } catch (e) { throw e; } }, }; module.exports = searchRepository; search.controller.js
const mongoose = require("mongoose"); const searchRepo = "../repositories/search.repository"; class SearchController { constructor() {} async store(req) { console.log("Reached Store"); try{ let record = await searchRepo.save(req.body); if (record) { return { status: 200, data: {}, message: "Saved Successfully" }; } else { return { status: 201, data: {}, message: "Unable to save your record. Please try again later." }; } } catch(e){ return { status: 201, data: {}, message: e.message }; } } } module.exports = new SearchController();El error que obtengo:
{ "status": 201, "data": {}, "message": "searchRepo.save is not a function" }La variable searchRepo en search.controller.js no está establecida en el objeto searchRepository que se encuentra en search.repository.js . Asegúrese de exportar e importar ese objeto correctamente. Actualmente solo está configurado en una cadena. En su lugar, podría usar require (por ejemplo, require({file_path}).{identifier} para importarlo.
No está importando searchRepo correctamente en el archivo search.controller.js .
En vez de
const searchRepo = "../repositories/search.repository";Hacer esto
const searchRepo = require("../repositories/search.repository");