Estoy creando una API personalizada, con un punto final definido de la siguiente manera:
Creé un controlador de creación de Profiling
para manejar la lógica de este punto final. El directorio de mi controlador contiene 2 archivos:
controller.ts
import { Request, Response } from 'express'; import ProfilingService from '../../services/profiling.service'; export class Controller { enrich_profile(req: Request, res: Response): void { console.log(req); ProfilingService.enrich_profile(req).then((r) => res .status(201) .location(`/api/v1/profile_data/enrich_profile/data${r}`) .json(r) ); } } export default new Controller();
routes.ts
/* eslint-disable prettier/prettier */ import express from 'express'; import controller from './controller'; export default express. Router() .post('/enrich_profile', controller.enrich_profile) ;
Sin embargo, cuando envié una llamada al punto final, aparece el siguiente error:
Y finalmente, para permitir una imagen completa, aquí está el contenido de profiling.service.ts
:
import L from '../../common/logger'; interface Profiling { data: never; } export class ProfilingService { enrich_profile(data: never): Promise<Profiling> { console.log(data); L.info(`update user profile using \'${data}\'`); const profile_data: Profiling = { data, }; return Promise.resolve(profile_data); } } export default new ProfilingService();
El error indica claramente que POST
al punto final definido no es posible, y no estoy seguro de entender por qué.
¿Cómo puedo solucionar este problema?
No estoy seguro de qué estaba causando el problema, pero después de limpiar mi caché npm y eliminar node_modules alrededor de 100X, el problema finalmente desapareció.