angularjs - Apostrophe CMS + Express.js 后端 + Angular 集成
问题描述
我一直在尝试将 Apostrophe CMS 与我们在 node.js+express.js 后端上运行的 CRM 平台集成,但我发现它有点困难。
在询问之前,我将详细说明设置:
- 我们有两个并行平台:client-cms和client-server,其中-cms是 APOS,-server是我们使用 node.js 和 express.js 构建的后端 API
- client-server有一个内置 angular 的前端,它在单独的项目client-ng上运行。集成的第一步是在/lib/modules/client-server/中的撇号中创建一个自定义模块,其中包含我们的 node.js + express.js 后端的副本。Apos 上的客户端服务器然后我们创建了/lib/modules/apostrophe-express/index.js,其中包含以下内容:
module.exports = {
session: {
secret: 'xxxxxxxxxd80e52'
},
csrf: {
exceptions: [
'/user/login',
'/api/v1/*/**'
]
},
port: 4000
};
在浏览我们的网站时,大部分内容都是从 Apostrophe 模块加载的,但是对于登录的用户,有一些特定的部分通过 angular 组件呈现,并从client-server的 API 加载数据。
但是,Apostrophe 和我们的 Angular 前端都应该共享一些 JS 和 CSS 依赖项,以及公共数据,例如 Apostrophe 的导航菜单。
问题:
- 我们最近在尝试通过 /api/v1/ 从客户端服务器加载数据时遇到间歇性 403 错误。我们已经添加了异常,但想知道是否有办法调试这些 403 错误。
- 我们的客户端-服务器处理所有登录用户的会话和信息,但我们不确定如何将其交给 Apostrophe 进行显示。例如,我们如何让我的 layout.html 从 /api/v1/ 中提取头像和 user_id 以便在整个站点中一致地显示此信息?
为了解决对统一 UI 的需求,我们正在研究的一种可能的解决方案是使用 apostrophe-headless。理想情况下,我们的目标是创建一个片段,将渲染的 UI 发送到 Angular,准备打印,或者在不太理想的情况下,发送data
对象,以便 Angular 拥有重新创建 UI 所需的一切。
我认为 headless 和 Fragment 可能会解决共享 UI 的问题。
想法?