Je veux créer un point de terminaison qui renvoie le contenu d'un fichier en utilisant sendFile. En écrivant la route moi-même dans mon application Express, je sais quoi faire et ça fonctionne :
app.get('/api/logs', (req, res) => {
var path = require('path');
res.sendFile(path.join(__dirname, '../../../..', 'file.log'));
});
Mais comme j'utilise tsoa, j'ai besoin d'écrire ceci dans mon contrôleur que je ferais de cette façon :
@Route('getlogs')
export class LoggerController extends Controller {
@Get()
async getLogs(@Response("") res: express.Response) {
let filePath = path.join(__dirname, '../../../..', 'file.log');
res.sendFile(filePath);
return res;
}
}
mais en faisant cela, je rencontre l'erreur suivante :
Generate routes error.
Error: Multiple matching models found for referenced type Response; please make model names unique.
Cela est vrai. J'ai un modèle pour Response dans node_modules/aws-sdk et dans node_modules/@types. Donc j'imagine que je ne devrais peut-être pas utiliser express.Response dans cette configuration. Cela ne devrait pas être si difficile à faire.
Si quelqu'un a une idée sur comment gérer cela, je serais très reconnaissant.