podium podlets 说明
podlets 提供了一个页面片段服务,podlets 包含了一些元数据信息,通过json 暴露,
主要包含以下内容
- 一个 http endpoint 提供主要内容
- 一个 http endpoint 提供fallback 功能,方便在主要内容不可读的时候提供访问
- 一些客户端js文件 的http endpoint 集合
- 一些客户端css 文件的http endpoint 集合
- http endpoint 需要是公共可访问的
podlets 开发
可以通过@podium/podlet 开发podlets
- podlets 简单代码
@podium/podlet 提供了好几种框架的支持
一个简单express 的demo
const express = require('express');
const Podlet = require('@podium/podlet');
const app = express();
const podlet = new Podlet({
name: 'myPodlet',
version: '1.0.0',
pathname: '/',
content: '/',
fallback: '/fallback',
development: true,
});
app.use(podlet.middleware());
app.get(podlet.content(), (req, res) => {
res.status(200).podiumSend(`
<div>
This is the podlet's HTML content
</div>
`);
});
app.get(podlet.manifest(), (req, res) => {
res.status(200).send(podlet);
});
app.listen(7100);
- fallback
参考格式
const podlet = new Podlet(/*...*/);
const app = express();
app.get(podlet.fallback(), (req, res) => {
res.status(200).podiumSend("<div>It didn't work :(</div>");
});
- context 配置
context 暴露的对象,可以方便用来进行不同语言不同设备以及不同开发模式的处理(进行渲染处理)
比如获取区域
app.use((req, res, next) => {
// res.locals.podium.context.locale
next();
});
获取不同设备
app.get('/', (req, res, next) => {
// res.locals.podium.context.deviceType
});
同时我们也可以设置默认的值
// Set default locale to Norwegian
podlet.defaults({
locale: 'nb-NO',
});
- proxy
因为podlets 并不强制大家运行podlet 以及layout 服务,我们也可以处理其他api 的地址
参考配置:
podlet.proxy({ target: '/api', name: 'api' });
app.get('/api/cats', (req, res) => {
res.json([{ name: 'fluffy' }]);
});
// http://localhost:1337/myLayout/podium-resource/myPodlet/api/cats
app.get('/api/dogs', (req, res) => {
res.json([{ name: 'rover' }]);
});
// http://localhost:1337/myLayout/podium-resource/myPodlet/api/dogs
- 本地开发环境配置以及问题解决
reload 问题:
通过nodemon 解决
npx nodemon server.js
开发模式:
development: true,
context 默认值处理
podlet.defaults({
mountOrigin: 'http://localhost:7100',
});
css&&js
podlet.js({ value: 'http://cdn.mysite.com/scripts.js' });
podlet.css({ value: 'http://cdn.mysite.com/styles.css' });
代理绝对路径
podlet.proxy({ target: 'http://google.com', name: 'google' });
参考资料
https://podium-lib.io/docs/podlet/getting_started
https://github.com/rongfengliang/podium-docker-compose
podium podlets 说明的更多相关文章
- podium layout 说明
layout 主要是进行podlets 的组合,同时也提供了context ,fallback,以及传递参数的处理 基本代码 const express = require('express'); c ...
- podium micro-frontends 简单试用
以下是一个简单的podium 试用,包含了layout 以及podlets,使用docker 运行 podium 主要包含了两大部分 podlets 片段服务 layouts 片段组合服务 环境准备 ...
- podium服务器端的微前端开发框架
podium 是一个比较全的微前端开发框架. 具有以下特性 自治开发 强大的组合能力 基于约定的开发模式 podium 包含的组件 podlets 页面片段,是一个独立的http 服务,独立运行的,实 ...
- 关于Advertising Campaign
Advertise Campaigns 是指为了传播企业创意或者宣传主题而采取的一些列的整合营销(IMC)活动,也称为广告战役.广告战役主要在一段明确的时间内,通过不同的媒体渠道投放广告,现在经常会整 ...
- 用javascript 面向对象制作坦克大战(二)
2. 完善地图 我们的地图中有空地,墙,钢,草丛,水,总部等障碍物. 我们可以把这些全部设计为对象. 2.1 创建障碍物对象群 对象群保存各种地图上的对象,我们通过对象的属性来判断对 ...
- November 11th, 2017 Week 45th Saturday
Happiness is a direction, not a place. 快乐是一个方向,不是一个目的. Do you remember those moments in your life wh ...
- 每日英语:Auto Makers Accelerate Efforts to Develop Self-Driving Cars
Big auto makers are steering their efforts to develop cars that drive themselves out of the labs and ...
- SharePoint 使用ECMAscript对象模型来操作Goup与User
这里总结了关于使用ECMAscript对象模型来操作Goup与User的常用情况,内容如下: 1.取得当前Sharepoint网站所有的Groups 2.获取当前登录用户的Title与 ...
- Randy Pausch’s Last Lecture
he University of Virginia American Studies Program 2002-2003. Randy Pausch ...
随机推荐
- -Git Linux vi/vim 命令 按键 MD
目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...
- 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
步骤1,打开 Navicat Premium ,创建一个新的 mysql 数据库: 步骤2,选中刚刚创建的新数据库 ,双击选中后点击导入向导,然后选择 "ODBC",并点击下一步 ...
- 在Unity 5中优化SkinnedMeshRenderer
过早优化是万恶之源”——Donald Knuth 不少开发者在前期开发过程中对算法等类似的开销都甚少关心,而是更倾向于尽可能简单的解决某个问题,后面必要时再进行优化.这能极大加速开发进度 ...
- Spring Security 解析(五) —— Spring Security Oauth2 开发
Spring Security 解析(五) -- Spring Security Oauth2 开发 在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决 ...
- comet oj #7
A 签到题 题目描述 多次询问,每次询问给一个值域范围 [l,r][l,r],要回答下列四个问题: 从这个范围内选出两个整数(两个数可相同), (1) 这两个数的最小公倍数最大是多少? (2) 这两个 ...
- 【转载】UiPath,UiPath教程,UiPath视频教程 RPA
第一课-UiPath简介 第二课-变量和数据类型第1部分-基础讲解 第二课-变量和数据类型第2部分-实例讲解 第二课-流程控制第1部分-ifelse语句讲解 第二课-流程控制第3部分-高级流程控制语句 ...
- C/ C++ 快速上手
C++ 快速上手 (一)https://www.cnblogs.com/cosmo89929/archive/2012/12/22/2828745.html C++ 快速上手 (二)https://w ...
- elasticsearch Terms Query 实现类似于sql in查询
本文demo基于elasticsearch 5.1.1, 项目中使用的还是较早的版本 例如 import com.alibaba.fastjson.JSON; import org.elastics ...
- 云服务器 - 定时备份MariaDB/MySQL
数据库数据备份尤为重要,而我们不会人工手动去备份,这样会很麻烦,我们都是通过服务器每日自定运行来做的,设置一个定时时间即可 首先我们看一下mysqldump这个文件的位置: 可以看到目录在 /usr/ ...
- Odoo Qweb语法
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826202.html 一:简介 QWeb是一个基于xml的模板引擎,用于生成HTML片段和页面. 模板指令 ...