首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在本地为Angular 8应用程序生成rss.xml运行良好,但在prod上不是这样

在本地为Angular 8应用程序生成rss.xml运行良好,但在prod上不是这样
EN

Stack Overflow用户
提问于 2021-01-27 22:02:49
回答 1查看 90关注 0票数 0

我正在尝试用ssr + firebase + gcp在域内为我的angular 8应用程序生成一个rss.xml文件。

我已经创建了一个可以通过/rss RssComponent访问的路由。在那里,我调用了getNews()方法并接收了一个对象数组。然后我向/api/rss发出http请求,然后在server.ts中处理该请求:

代码语言:javascript
运行
复制
app.post('/api/rss', (req, res) => {
  const data = req.body.data;
  const feedOptions = // defining options here
  const feed = new RSS(feedOptions);
  data.forEach((item) => {
    feed.item({
      title:  item.headingUa,
      description: item.data[0].dataUa,
      url: item.rssLink,
      guid: item.id,
      date: item.utcDate,
      enclosure: {url: item.mainImg.url.toString().replace('&', '&'), type: 'image/jpeg'}
    });
  });
  const xml = feed.xml({indent: true});
  fs.chmod('dist/browser/rss.xml', 0o600, () => {
    fs.writeFile('dist/browser/rss.xml', xml, 'utf8', function() {
        res.status(200).end();
    });
  });
});

最后,根据响应,我将在RssComponent中打开最近生成的rss.xml文件。在本地,一切正常,但在Google Cloud平台上,它不会生成文件。

EN

回答 1

Stack Overflow用户

发布于 2021-04-19 23:41:16

the Cloud Functions docs中所述

文件系统的唯一可写部分是/tmp目录

尝试将文件的路径更改为/tmp目录。

然而,在无服务器环境中使用本地文件是一个非常糟糕的想法。您应该假设处理以下请求的实例不会与前一个实例相同。

处理此问题的最佳方法是避免编写本地文件,而是将生成的文件存储在GCP StorageFirebase Storage中,然后在需要时从那里检索它。

这将确保您的函数是幂等的,并且也将符合the best practices

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65920730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档