一、问题描述
一般网站为了能让搜索引擎快速索引到一个网站的所有文章,会自己建立一个站点地图,里面包含了本站的所有文章链接。
站点地图大多数情况下使用以下两种格式:
- txt格式:每一行都是一个页面链接
- xml格式:每一个url节点包含一个链接相关信息
tx格式的比较简单,这种重点讲解一下xml格式的生成方法
二、解决方案
我使用的xml2js这个库,它可以很方便的完成xml文档的生成。
可以通过npm进行安装:
npm install xml2js
安装完成后,通过下面这段代码完成站点地图的生成:
import xml2js from 'xml2js'
var builder = new xml2js.Builder({
rootName:'urlset',
xmldec:{
'version':'1.0',
'encoding':'UTF-8'
}
});
let urls=[]; //存放所有需要保存到站点地图的链接
let xml_obj = {
$:{xmlns:"http://www.sitemaps.org/schemas/sitemap/0.9"},
url:[]
};
for (let i = 0; i < urls.length; i++) {
xml_obj.url.push({
loc:urls[i],
lastmod:'填入最后一次修改该链接文章的日期,格式为:yyyy-MM-dd'
})
}
let sitemap=builder.buildObject(xml_obj);
这里的sitemap就是生成好的内容,可以将其保存为文本文件、或者直接在路由中以纯文本格式返回均可。