Issue
Here is my code:
const express = require('express');
var app = express();
const nunjucks = require('nunjucks');
nunjucks.configure('templates', {
autoescape: true,
express: app
});
let host = '127.0.3.1';
let port = '9233';
let myName = '[RETACTED]';
var d = new Date();
let date = d.getMonth() + "/" + d.getDay() + "/" + d.getFullYear();
let time = Date.now();
let info = {host: host, port: port, name: myName, date: date, time: time}
app.get('/date', function (req, res) {
res.render('server.html', info);
});
app.listen(port, host, function () {
console.log("Example app listening on IPv4: " + host +
":" + port);
});
I tried running it on Git Bash, but an error saying this appeared:
Error: template not found: server.html
at createTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modul
es\nunjucks\src\environment.js:290:15)
at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:330:7)
at handle (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunju
cks\src\environment.js:329:11)
at C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjucks\src\
environment.js:339:9
at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:328:7)
at Object.asyncIter (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_mod
ules\nunjucks\src\lib.js:334:3)
at Environment.getTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\n
ode_modules\nunjucks\src\environment.js:321:9)
at Environment.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_m
odules\nunjucks\src\environment.js:360:10)
at NunjucksView.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_
modules\nunjucks\src\express-app.js:22:9)
at tryRender (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\ex
press\lib\application.js:640:10)
Error: template not found: server.html
at createTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modul
es\nunjucks\src\environment.js:290:15)
at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:330:7)
at handle (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunju
cks\src\environment.js:329:11)
at C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjucks\src\
environment.js:339:9
at next (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\nunjuck
s\src\lib.js:328:7)
at Object.asyncIter (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_mod
ules\nunjucks\src\lib.js:334:3)
at Environment.getTemplate (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\n
ode_modules\nunjucks\src\environment.js:321:9)
at Environment.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_m
odules\nunjucks\src\environment.js:360:10)
at NunjucksView.render (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_
modules\nunjucks\src\express-app.js:22:9)
at tryRender (C:\Users\Default.DESKTOP-7TNLM47\repo\practice\node_modules\ex
press\lib\application.js:640:10)
However, the server.html is in the same folder as the server.js. Is there any solution I could use to fix it? I’m kind of a beginner at creating servers with JS and I probably need some guidance here.
Solution
Since you’ve configured nunjucks to look up the views in the templates
directory (in the nunjucks.configure
call), you should move the server.html
file to the templates
directory.