I have a simple application that should output a small content. I use NodeJs, Express and Pug.
const pug = require('pug');
const express = require('express');
const app = express();
const indexFile = 'index'; // the file to load
app.set('view engine', 'pug'); // use pug
app.get('/', function (req, res) {
res.render(indexFile, {content: 7}); // load the file and set the variable to 7
});
app.listen(8888, function () {
console.log('Server running on port 8888');
});
And my Pug file / HTML
doctype html
link(rel='stylesheet', href='../CSS/requirements.css')
script(src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js')
body
p = content
When starting the server I receive this error message
Error: C:\Users\mah\Desktop\Test\views\index.pug:2:1
1| doctype html
> 2| link(rel='stylesheet', href='../CSS/requirements.css')
-------^
3| script(src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js')
4| body
5| p = content
unexpected token "indent"
at makeError (C:\Users\mah\Desktop\Test\node_modules\pug-error\index.js:32:13)
at Parser.error (C:\Users\mah\Desktop\Test\node_modules\pug-parser\index.js:53:15)
at Parser.parseExpr (C:\Users\mah\Desktop\Test\node_modules\pug-parser\index.js:264:14)
at Parser.parse (C:\Users\mah\Desktop\Test\node_modules\pug-parser\index.js:112:25)
at parse (C:\Users\mah\Desktop\Test\node_modules\pug-parser\index.js:12:20)
at Object.parse (C:\Users\mah\Desktop\Test\node_modules\pug\lib\index.js:126:22)
at Function.loadString [as string] (C:\Users\mah\Desktop\Test\node_modules\pug-load\index.js:45:21)
at compileBody (C:\Users\mah\Desktop\Test\node_modules\pug\lib\index.js:86:18)
at Object.exports.compile (C:\Users\mah\Desktop\Test\node_modules\pug\lib\index.js:243:16)
at handleTemplateCache (C:\Users\mah\Desktop\Test\node_modules\pug\lib\index.js:216:25)
Could someone help me out here?
I think you forget html
just after doctype html
.
doctype html
html
link(rel='stylesheet', href='../CSS/requirements.css')
script(src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js')
body
p=content
doctype html
and html
should be at same intent level. Btw, change p = content
to p=content
to print passed value