首页 > 解决方案 > 我想使用 nodejs 从 API 生成动态站点地图并表达

问题描述

我想从 API 生成动态站点地图。这是我为路由器编写的代码。我不熟悉nodejs。谁能告诉我可以用于生产吗?

const express = require('express')
const fetch = require('node-fetch');
const CLIENT = require('../../config/index')

const { SitemapStream } = require('sitemap')
const { createGzip } = require('zlib')

const router = express.Router()

require('dotenv').config()


// GET events
router.get('/sitemap.xml', async (_, res) => {
     // headers
     res.header('Content-Type', 'application/xml');
     res.header('Content-Encoding', 'gzip');

 
     
     // sitemap
 
   try {
    const data = await fetch('https://jsonplaceholder.typicode.com/posts')
 
 
    const json = await data.json()

     const smStream = new SitemapStream({ hostname: CLIENT[process.env.CLIENT] })
     const pipeline = smStream.pipe(createGzip())
 
     // pipe your entries or directly write them.
     for (let index = 0; index < json.length; index++) {
         smStream.write({ url: '/page-1/' + json[index].id,  changefreq: 'daily', priority: 0.3 })
     }
     smStream.end()
     // stream write the response
     pipeline.pipe(res).on('error', (e) => {throw e})
   } catch (e) {
     console.error(e)
     res.status(500).end()
   }
})

module.exports = router

这是路由器代码。请告诉我。

标签: javascriptnode.jsexpress

解决方案


推荐阅读