基于Koa2自動(dòng)生成sitemap網(wǎng)站地圖方便搜索引擎收錄SEO

基于Koa2自動(dòng)生成sitemap網(wǎng)站地圖方便搜索引擎收錄SEO

sitemap是一種高級(jí)流式生成Sitemap的庫(kù)/ CLI,它使創(chuàng)建Sitemap XML文件變得容易,本文主要講解基于koa2生成網(wǎng)站sitemap.xml,并進(jìn)行封窗。

需要使用的sitemap包,sitemap包可以生成sitemap.xml文件,方便我們網(wǎng)站做seo收錄優(yōu)化

搭建服務(wù)器環(huán)境

const Koa = require('koa');
const app = new Koa();
app.listen(3000);
console.log('啟動(dòng)成功:http://localhost:3000');

生成sitemap.xml文件

const Koa = require('koa');
const { SitemapStream } = require('sitemap');
const fs = require('fs');
const app = new Koa();
app.use((ctx,next)=>{
    if(ctx.url === '/addsitemap'){
        let smStream = new SitemapStream({hostname:'http://localhost'});
        let mySitemap = fs.createWriteStream('sitemap.xml');
        smStream.pipe(mySitemap);
        smStream.write({ url: '/page-1/',  changefreq: 'daily', priority: 0.3 });
        smStream.end();
        smStream.on('finish',()=>{
            ctx.body = '生成sitemap.xml成功';
        })
    }
})

app.listen(3000);
console.log('啟動(dòng)成功:http://localhost:3000');

首先引入sitemap的sitemapStream,然后新建一個(gè)SitemapStream,通過hostname配置一個(gè)跟域名,配置之后,接下來寫入smStream的信息都可以自動(dòng)的添加根域名。創(chuàng)建可讀流sitemap.xml, 并把smStream的信息放入其中。

讀取sitemap.xml文件

const { SitemapStream, streamToPromise, XMLToSitemapItemStream } = require('sitemap');
...code 其他的代碼 
if(ctx.url === '/addsitemap'){
 } else if (ctx.url === '/sitemap.xml') {
   let sm = new SitemapStream();
   fs.createReadStream('sitemap.xml')
     .pipe(new XMLToSitemapItemStream())
     .pipe(sm)
   let res = await streamToPromise(sm);
   ctx.set('Content-Type', 'application/xml')
   ctx.body = res;
 }

首先引入XMLToSitemapItemStream用來讀取xml文件流,并轉(zhuǎn)換成sitemap包需要的格式,然后再傳遞給sm ,利用streamToPromise,可以把sm流轉(zhuǎn)換成buffer。

最后我們?cè)O(shè)置一下相應(yīng)頭為application/xmlbody返回轉(zhuǎn)換后到buffer即可

后續(xù)會(huì)出一篇關(guān)于一篇關(guān)于封裝基于koa2的sitemp包的文章,敬請(qǐng)關(guān)注。

基于Koa2自動(dòng)生成sitemap網(wǎng)站地圖方便搜索引擎收錄SEO

歡迎關(guān)注作者原文:原文地址:https://www.9cka.cn/study/13

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 開篇 本文閱讀需10分鐘,簡(jiǎn)單易上手,屬于安卓開發(fā)教程的基礎(chǔ)部分。 建議精讀,深刻理解大意。多做實(shí)踐。多寫代碼。 ...
    做全棧攻城獅閱讀 559評(píng)論 0 0
  • 前言 能看到這里,說明大家都跟我一樣,已經(jīng)把博客搭起來并洋洋灑灑寫了幾篇博文,正春風(fēng)得意感覺良好的時(shí)候,搭建博客有...
    嘟爺MD閱讀 2,874評(píng)論 0 2
  • 別人收藏珠寶,我收藏日子。 日子天天過,有什么好收藏的?你一定會(huì)問。 珠寶可以重金買進(jìn),日子不能;珠寶可能失而復(fù)得...
    寒香子閱讀 391評(píng)論 0 1
  • 1.冒泡排序算法(入門級(jí)基礎(chǔ))選擇最大 這個(gè)算法要注意下,兩層循環(huán)的含義,理解明白了,自然而然就會(huì)了。多畫畫圖。缺...
    朱宏飛閱讀 457評(píng)論 0 0
  • 在真正的審判來臨之前,一個(gè)人的一生會(huì)經(jīng)歷什么呢? 三歲那年,他被嬸娘收養(yǎng)。 那日大雨傾盆,天光晦暗。小小的他包裹在...
    oswin0閱讀 742評(píng)論 14 7

友情鏈接更多精彩內(nèi)容