Ich schreibe eine kleine NodeJS/Express-App. Ich habe bis Mops als Template-Engine:pug.compile() kann keine Vorlagendateien finden (res.render() kann)
const app = express();
app.set('view engine', 'pug');
app.set('views', __dirname + "/public/views");
app.use(express.static(__dirname + '/public/static'));
Dies funktioniert gut, wenn ein res.render()
Aufruf HTML Antworten senden:
app.get('/', function getIndex(req, res){
res.render('index.pug');
});
Aber wenn ich versuche, kleine Komponenten zu machen und sammeln sie in einem String oder ein Array als Antwort auf einen AJAX-Aufruf, ich kann es nicht zum Laufen bringen.
const pug = require('pug');
const compile = pug.compileFile('option.pug');
Dies führt immer zu Error: ENOENT: no such file or directory, open 'option.pug'
. Ich habe versucht, den Pfad zur Perspektive des Routers zu ändern (so etwas wie ../../public/views/option.pug
), aber das hilft auch nicht.
Ich weiß nicht, warum die Pfade unterschiedlich interpretiert werden.
Wie beziehe ich mich auf diese Vorlage bei der Verwendung von pug.compileFile
?
Entschuldigung für die späte Antwort. Das funktioniert, obwohl ich das Problem ganz vermieden habe, indem ich diesen Teil meiner Bewerbung abstrahiert habe. –