J'écris une petite application NodeJS/Express. Je mis en place carlin comme moteur de modèle:pug.compile() ne peut pas trouver les fichiers modèles (res.render() peut)
const app = express();
app.set('view engine', 'pug');
app.set('views', __dirname + "/public/views");
app.use(express.static(__dirname + '/public/static'));
Cela fonctionne bien lorsque vous appelez un res.render()
à envoyer des réponses HTML:
app.get('/', function getIndex(req, res){
res.render('index.pug');
});
Mais lorsque je tente de rendre les petits composants et les recueillir dans une chaîne ou un tableau en réponse à un appel AJAX, je n'arrive pas à le faire fonctionner.
const pug = require('pug');
const compile = pug.compileFile('option.pug');
Cela aboutit toujours à Error: ENOENT: no such file or directory, open 'option.pug'
. J'ai essayé de changer le chemin vers la perspective du routeur (donc quelque chose comme ../../public/views/option.pug
) mais cela n'aide pas non plus.
Je ne sais pas pourquoi les chemins sont interprétés différemment.
Comment faire référence à ce modèle lors de l'utilisation de pug.compileFile
?
Désolé pour la réponse tardive. Cela fonctionne, même si j'ai évité le problème en faisant abstraction de cette partie de mon application. –