Skip to content

Instantly share code, notes, and snippets.

@bjerkek
Created May 4, 2021 12:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjerkek/16d491dd9c41d6ec1cf5796c6863650f to your computer and use it in GitHub Desktop.
Save bjerkek/16d491dd9c41d6ec1cf5796c6863650f to your computer and use it in GitHub Desktop.
Learning Podium - Loans Layout - 3
const express = require('express');
const Layout = require('@podium/layout');
const app = express();
const domain = 'http://localhost';
const port = '7000';
const url = `${domain}:${port}`;
const layout = new Layout({
name: 'loansLayout',
pathname: '/loans',
});
const headerPodlet = layout.client.register({
name: 'headerPodlet',
uri: 'http://localhost:7100/manifest.json',
});
const myLoansPodlet = layout.client.register({
name: 'myLoansPodlet',
uri: 'http://localhost:7300/manifest.json',
});
const feedbackPodlet = layout.client.register({
name: 'feedbackPodlet',
uri: 'http://localhost:7200/manifest.json',
});
app.use(layout.middleware());
app.get('/loans', async (req, res) => {
const incoming = res.locals.podium;
const [header, myLoans, feedback] = await Promise.all([
headerPodlet.fetch(incoming),
myLoansPodlet.fetch(incoming),
feedbackPodlet.fetch(incoming)
]);
incoming.podlets = [header, myLoans, feedback];
incoming.view.title = 'Loans';
res.podiumSend(`
<div>${header}</div>
<div>${myLoans}</div>
<div>${feedback}</div>
`);
});
app.listen(port, () => {
console.log(url);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment