成都网站建设设计

将想法与焦点和您一起共享

NodeJs生成sitemap站点地图的方法示例

如果博客是使用Hexo管理的,sitemap可以使用插件来生成。但对于一个内容管理网站,后端可能是express、koa之类的框架,这时sitemap就需要自己来生成了

在攀枝花等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站设计 网站设计制作按需定制开发,公司网站建设,企业网站建设,品牌网站建设,全网整合营销推广,成都外贸网站建设公司,攀枝花网站建设费用合理。

什么是sitemap

Sitemap可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的Sitemap形式,就是XML文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。

sitemap结构


 http://www.jouypub.com/
 2019-05-01
 daily
 0.5

  • loc:文章链接地址
  • lastmod:最后更新时间
  • changefreq:更新频率,daily/monthly
  • priority:权重

生成sitemap,基于express项目

开源包:sitemap,地址: https://github.com/ekalinin/sitemap.js

> npm install --save sitemap

代码中使用

const express = require('express')
const sm = require('sitemap');

router.get('/sitemap.xml', function (req, res) {
 let pageRequest = Object.create({});
 pageRequest.pageSize = -1;
 pageRequest.pageNum = 1;
 api.post('/article/list', pageRequest, function (result) {
  let urls = [];
  for (let article in result) {
   urls.push({
    url: article.url,
    changefreq: 'daily',
    lastmodrealtime: true,
    priority: 1,
    lastmod: article.updateTime
   });
  }

  let sitemap = sm.createSitemap({
   hostname: 'http://invest.jouypub.com',
   cacheTime: 600000, // 600sec, cache purge period
   urls: urls
  });

  sitemap.toXML(function (err, xml) {
   if (err) {
    console.log(err);
    return res.status(500).end();
   }
   res.header('Content-Type', 'application/xml');
   res.send(xml);
  });
 });
});

sitemap优化

上面那种方法在文章数少时还能使用,如果有几千甚至几万篇文章,一次拉取的方式就不适合了,就需要把返回结果写入到文件中,一天更新一次。只需要只需要把

sitemap.toXML()

改成

fs.writeFileSync("app/assets/sitemap.xml", sitemap.toString());即可。每次请求sitemap时读文件即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


网站标题:NodeJs生成sitemap站点地图的方法示例
文章分享:http://chengdu.cdxwcx.cn/article/ghjdpj.html