Estoy tratando de crear la aplicación NodeJS desde cero con la adición de mecanografiado... Estaba siguiendo un tutorial y básicamente hice los mismos pasos que él, pero no recibió este error... ¿Recibieron NodeJS o TypeScript algún tipo de actualización? que están causando este error?
El problema es que recibo un error en el archivo POST index.ts con el controlador getAllUsers y no tengo ni idea de qué se trata:
Ninguna sobrecarga coincide con esta llamada. La última sobrecarga dio el siguiente error. El argumento de tipo '(req: Request, res: Response) => Promise' no se puede asignar al parámetro de tipo 'Application<Record<string, any>>'. Tipo '(req: Request, res: Response<any, Record<string, any>>) => Promise' faltan las siguientes propiedades del tipo 'Application<Record<string, any>>': init, defaultConfiguration, engine, conjunto, y 61 más.
Cualquier ayuda es bienvenida :)
archivo index.ts:
import * as functions from "firebase-functions"; import * as express from "express"; import {getAllUsers } from "./controllers/usersController"; const app = express(); app.post("/users",getAllUsers); app.get("/", (req, res) => res.status(200).send("default route!")); exports.app = functions.https.onRequest(app);
Archivo del controlador:
const getAllUsers = async (req: Request, res: Response) => { let userArray: any[] = []; try { const user = await db.collection("userInfo").get(); if (!user.docs) { res.status(404).send("not found"); } else { user.docs.forEach((user) => userArray.push({id: user.id, user: user.data()}) ); } res.status(200).send("<p>some html</p>"); } catch (error) { res.status(500).send("error.message"); } }; export {getAllUsers};
Me quedé atascado durante horas para este. Espero que esto haya ayudado. Intenta cambiar el formato del código de
import {getAllUsers } from "./controllers/usersController";
& export {getAllUsers};
para import getAllUsers from "./controllers/usersController";
& export default getAllUsers;