0

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;
user2473015
  • 1,392
  • 3
  • 22
  • 47

0 Answers0