我已经实现了模块撇号站点地图,并且站点地图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中一样。
我的问题是,是否可以在配置中为撇号站点地图指定数据库的主机?
答案 0 :(得分:1)
apostrophe-site-map
不会创建自己的数据库连接。它使用Apostrophe提供的模型层方法,从而重用了标准方法。
所以您的问题是,“为什么我的命令行任务没有与正确的数据库对话?”
答案是“因为在运行任务时没有像在实际站点上那样设置相同的APOS_MONGODB_URI
环境变量”。也有可能使用data/local.js
文件覆盖和设置MongoDB的URI,但是解决方案是相同的:在网站运行的环境和任务运行的环境之间保持一致。