[Fixed] server.html not found while creating an Express Based Server

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.

Leave a Reply

(*) Required, Your email will not be published