【发布时间】:2017-10-01 21:21:17
【问题描述】:
现在我有这段代码可以在我运行 /sitemap.xml 时创建 sitemap.xml
database = firebase.database();
var ref = database.ref('urls');
ref.on('value', gotData, errData);
function errData(err){
console.log('Error!');
console.log(err);
}
function gotData(data){
result = data.val()
return urls = Object.keys(result)
.filter(key => result[key].last_res > 5)
.map(key => ({url: '/' + result[key].url_site + '/'}))
}
当我尝试在 gotData(data) 函数中运行 console.log(urls) 时,它返回为
{ salmon:
{ count: 1,
last_res: 10,
url_site: 'salmon' },
'salmon-food':
{ count: 1,
last_res: 601,
url_site: 'salmon-food' } }
我需要将此代码合并到上面的函数中
var sitemap = sm.createSitemap({
hostname: 'xxx.com',
cacheTime: 600000,
urls: urls
});
app.get('/sitemap.xml', function(req, res) {
sitemap.toXML( function (err, xml) {
if (err) {
return res.status(500).end();
}
res.header('Content-Type', 'application/xml');
res.send( xml );
});
});
}
我需要在 gotData(data) 中返回 url 来创建 sitemap.xml。那么如何将这段代码合并在一起
【问题讨论】:
-
return sitemap;在gotData的末尾,然后在另一个函数的顶部,调用sitemap = gotData(data);...? -
这段代码没有任何意义。
var sitemap = sm.createSitemap无法访问,因为它是在返回后调用的。 -
我已经更新了代码
标签: javascript angularjs arrays node.js express