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 ...
随机推荐
- python实现Huffman编码
一.问题 利用二叉树的结构对Huffman树进行编码,实现最短编码 二.解决 # 构建节点类 class TreeNode: def __init__(self, data): "" ...
- mycat在windows环境下安装和启动
1.下载从如下地址下载mycat的安装包: http://www.mycat.io/ eg:Mycat-server-1.6.6.1-release-20181031195535-win.tar.gz ...
- Oracle学习笔记(五)
如何查询硬解析问题: --捕获出需要使用绑定变量的SQL drop table t_bind_sql purge; create table t_bind_sql as select sql_text ...
- 2、Vue构造器和扩展
1.VUE构造器简介 VUE构造器是一个非常重要的语法. 每个Vue.js应用都是通过构造函数Vue创建一个根实例. New了Vue对象,然后调用了这个vue对象的构造器,并向构造器传入了数据. 在实 ...
- Python网络编程、爬虫之requests模块使用
一.python操作网络,也就是打开一个网站,或者请求一个http接口,使用urllib模块. urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib ...
- Python与Golang对比
一:前言 刚看了一篇软文,说什么“才华是改变人生最有效的途径”,反正呢,大体就是科技进步,要想一直在车上,就得不断的学习,刚好最近也准备学习Golang,最近火的不能在火了吧,刚好也有些Python基 ...
- Java之路---Day19(set接口)
set接口 java.util.Set 接口和 java.util.List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方 法基本一致,但是set接口中元素 ...
- Guava入门
其实我用guava差不多大半年时间了,发现guava真的特别好用,又会使代码变得很简洁,最近又系统的学习了一下,大致讲一下
- android中fragment卡顿的原因
首页的ViewPager有十几个Fragment,在快速切换的时候,容易产生卡顿现象. 二.分析当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快 ...
- angular8 打包时 文件过大 导致内存溢出解决方案(记录)
在package.json 中添加 "scripts": { "ng": "ng", "start": "ng ...