Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在运行时在angular 9项目结构中动态创建/修改sitemap.xml文件?_Node.js_Angular_Angular Cli_Sitemap_Angular9 - Fatal编程技术网

Node.js 如何在运行时在angular 9项目结构中动态创建/修改sitemap.xml文件?

Node.js 如何在运行时在angular 9项目结构中动态创建/修改sitemap.xml文件?,node.js,angular,angular-cli,sitemap,angular9,Node.js,Angular,Angular Cli,Sitemap,Angular9,如何在Angular 9项目结构中创建动态sitemap.xml文件?我可以使用HTTP get请求从节点API获取数据,但使用这些数据,我如何在运行时从angular project更新本地xml文件 在我的例子中,angular项目和node项目位于不同的服务器(不同的域)上。可以在node项目中创建xml文件,但我无法在angular项目根中以xml文件的形式访问该文件 是否有人可以建议我如何在angular项目中使用节点xml,或者是否可以使用angular 9中的api调用创建/修改d

如何在Angular 9项目结构中创建动态sitemap.xml文件?我可以使用HTTP get请求从节点API获取数据,但使用这些数据,我如何在运行时从angular project更新本地xml文件

在我的例子中,angular项目和node项目位于不同的服务器(不同的域)上。可以在node项目中创建xml文件,但我无法在angular项目根中以xml文件的形式访问该文件

是否有人可以建议我如何在angular项目中使用节点xml,或者是否可以使用angular 9中的api调用创建/修改dynamic sitemap.xml


如果有任何帮助,我将不胜感激。

我现在正在研究同一主题,我已经取得了一些成就

我像这样在
angular.json
文件中添加了它

然后我创建了一个组件,并将其路径指定为
sitemap.xml

可以在角度上执行服务器端渲染,这样我们的工作就简单了一点

您可以向routing.module文件添加新路由,并通过
server.ts

function writeFile(sitemap: string): void {
    const fs = require('fs');
    fs.appendFile('../sitemap.xml', sitemap, (err) => {
    if (err) {
    throw err;
  }
    console.log('Saved!');
  });
}
  
例如,您可以通过这种方式在
server.ts
中访问类似
sitemap.xml
的路由

server.get('/sitemap.xml', (req, res, next) => { bla,bla }
现在,您可以在此处访问所需的文件,并根据需要进行更改

server.ts中的文件操作

function writeFile(sitemap: string): void {
    const fs = require('fs');
    fs.appendFile('../sitemap.xml', sitemap, (err) => {
    if (err) {
    throw err;
  }
    console.log('Saved!');
  });
}
  
然后,重定向操作

res.redirect('http://localhost:{$PORT}/sitemap.xml');

谢谢你的回复。您能详细说明一下如何将数据添加到从web服务提取的sitemap.xml中吗?我们可以修改驻留在资产文件夹中的sitemap.xml文件吗?是的,这是正确的方法。但问题是,要在angular中使用服务器端渲染,我需要在angular网站服务器中安装nodeJS,这在我的情况下是不可能的。在没有安装nodeJS的情况下,有没有办法实现这一点?