My folder structure is defined as
├── core
| ├── main.css
| └── base.njk
├── preview
| ├── img
| ├── css
| ├──routes
| | └──index.js
| ├── views
| | ├── preview.njk
| └── server.js
├── templates
| ├── login
| | └── index.njk
├── package.json
└── index.js
Where index.njk
in templates/login/index.njk
is extended from base.njk
in core
.
I'm want to render login index template inside preview server.js which i then get error saying template not found
preview/server.js looks like
'use strict';
const nunjucks = require('nunjucks');
const express = require('express');
const app = express();
nunjucks.configure('views', {
autoescape: true,
express: app
});
app.set('view engine', 'njk');
app.use('/css', express.static(__dirname + '/css'));
app.use('/img', express.static(__dirname + '/img'));
app.use(express.static(__dirname + '/public'));
app.get('/', function(req, res) {
res.status(200);
let data = {
templates: []
};
console.log(data.templates);
res.render('preview', data);
});
const templateRouter = require('./routes');
app.use('/', templateRouter);
app.set('port', 9090);
app.set('ip', "127.0.0.1");
app.listen(app.get('port'), app.get('ip'), function() {
console.log('%s: Node server started on %s:%d ...', Date(Date.now()), app.get('port'), app.get('ip'));
});
And template router is defined as
'use strict';
const express = require('express');
const templateRouter = express.Router();
templateRouter.route('/:templateName')
.get(function(req, res) {
if (req.params.templateName !== 'core') {
res.render('./../../templates/'req.params.templateName + '/index');
} else {
res.send('error !');
}
});
module.exports = templateRouter;