Apostrophe Sitemap数据库配置

时间:2018-09-24 10:12:11

标签: node.js apostrophe-cms

我已经实现了模块撇号站点地图,并且站点地图xmls根据区域设置生成。以下是我的模块配置

'apostrophe-site-map': {
    // array of doc types you do NOT want
    // to include, even though they are
    // accessible on the site.
    excludeTypes: [],
    perLocale: true,
    piecesPerBatch: 100
}

我在package.json中保留了两个脚本,如下所示:

"generate-site-map": "node src/app apostrophe-site-map:map --indent --file",
"update-site-map-cache": "node src/app apostrophe-site-map:map --update-cache"

因此,我能够使用脚本generate-site-map为每个语言环境生成站点地图xml,并且我想尝试缓存部分,因此也保留了update-site-map-cache

现在,在我们的演示服务器上,我们收到第二个命令(更新缓存)的MongoDB连接错误。错误是:

MongoError: failed to connect to server [127.0.0.1:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017] at Pool.<anonymous>

因此,基本上,它是在更新缓存时尝试查找本地MongoDB服务。在我们的服务器上没有MongoDB的本地设置,就像在MongoDB Atlas中一样。

我的问题是,是否可以在配置中为撇号站点地图指定数据库的主机?

1 个答案:

答案 0 :(得分:1)

apostrophe-site-map不会创建自己的数据库连接。它使用Apostrophe提供的模型层方法,从而重用了标准方法。

所以您的问题是,“为什么我的命令行任务没有与正确的数据库对话?”

答案是“因为在运行任务时没有像在实际站点上那样设置相同的APOS_MONGODB_URI环境变量”。也有可能使用data/local.js文件覆盖和设置MongoDB的URI,但是解决方案是相同的:在网站运行的环境和任务运行的环境之间保持一致。