app.set("view engine", "ejs");
app.set("views", __dirname + "/public");
app.use(express.static("public/assets/"));
const express = require('express')
const app = express()
const port = 3000
app.set('view engine', 'ejs')
app.get('/', (req, res) => {
res.render('pages/index')
})
app.listen(port, () => {
console.log(`App listening at port ${port}`)
})
$ npm install ejs
npm install ejs //install ejs in cmd
let ejs = require('ejs');
let people = ['geddy', 'neil', 'alex'];
let html = ejs.render('<%= people.join(", "); %>', {people: people});
Error: Failed to lookup view "events/edit" in views directory "/home/tcb/Mange/NodeApps/myapp11/views"
at Function.render (/home/tcb/Mange/NodeApps/myapp11/node_modules/express/lib/application.js:580:17)
at ServerResponse.render (/home/tcb/Mange/NodeApps/myapp11/node_modules/express/lib/response.js:1008:7)
at /home/tcb/Mange/NodeApps/myapp11/routes/events.js:55:11
at /home/tcb/Mange/NodeApps/myapp11/node_modules/mongoose/lib/model.js:4919:18
at processTicksAndRejections (internal/process/task_queues.js:77:11)
/*EJS with express
In Express v4, a very basic setup using EJS would look like the following.
(This assumes a views directory containing an index.ejs page.) */
let express = require('express');
let app = express();
//to set view engine for using EJS
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
res.render('index', {foo: 'FOO'});
});
app.listen(4000, () => console.log('Example app listening on port 4000!'));
ejs ./template_file.ejs -f data_file.json -o ./output.html
Tags
<% 'Scriptlet' tag, for control-flow, no output
<%_ ‘Whitespace Slurping’ Scriptlet tag, strips all whitespace before it
<%= Outputs the value into the template (HTML escaped)
<%- Outputs the unescaped value into the template
<%# Comment tag, no execution, no output
<%% Outputs a literal '<%'
%> Plain ending tag
-%> Trim-mode ('newline slurp') tag, trims following newline
_%> ‘Whitespace Slurping’ ending tag, removes all whitespace after it
EJS PLAYGROUND
Check out what ejs does at the playground in the source