61 lines
No EOL
1.2 KiB
Markdown
61 lines
No EOL
1.2 KiB
Markdown
ejs
|
|
|
|
https://www.digitalocean.com/community/tutorials/how-to-use-ejs-to-template-your-node-application
|
|

|
|
|
|
layouts
|
|
use this for layouts https://www.npmjs.com/package/express-ejs-layouts
|
|
|
|
```js
|
|
const express = require('express');
|
|
const expressLayouts = require('express-ejs-layouts');
|
|
const app = express();
|
|
|
|
// Set EJS as the view engine
|
|
app.set('view engine', 'ejs');
|
|
|
|
// Use the layouts middleware
|
|
app.use(expressLayouts);
|
|
|
|
// Optional: Define a default layout file
|
|
app.set('layout', 'layouts/layout');
|
|
|
|
```
|
|
|
|
layout at `views/layouts/layout.ejs`
|
|
```html
|
|
...
|
|
<body>
|
|
<main>
|
|
<!-- Individual page content is injected here -->
|
|
<%- body %>
|
|
</main>
|
|
</body>
|
|
|
|
|
|
```
|
|
|
|
view at `views/index.ejs`
|
|
```html
|
|
<h1>Welcome to my Homepage!</h1>
|
|
<p>This is the main content of the home page.</p>
|
|
|
|
```
|
|
|
|
for custom layout
|
|
```js
|
|
app.get('/admin', (req, res) => {
|
|
res.render('admin-dashboard', { layout: 'layouts/admin-layout' });
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
when using variable which might be undefined this is safest way to do it
|
|
|
|
```html
|
|
<% if( typeof keyword!=='undefined' && keyword ){ %>
|
|
<br>
|
|
<% } %>
|
|
``` |