Ошибка при генерации sitemap.xml -> dynamicRoutes.map — это не функция

#vue.js #nuxt.js #sitemap #sitemap.xml

Вопрос:

Контекст:

Я использую модуль Nuxt Sitemap и пытаюсь сгенерировать или создать свои маршруты dynamics (продукты, которые у меня есть в моей БД). Вот моя карта сайта на моем nuxt.config.js

 sitemap: {
    hostname: process.env.PH_WEB_APP_BASE_URL || 'http://localhost:3000/',
    gzip: true,
    exclude: ExcludedPaths,
    cacheTime: 1000 * 60 * 15,
    defaults: {
      changefreq: 'daily',
      priority: 1,
      lastmod: new Date()
    },
    routes: () => {
      const baseUrl = process.env.PH_WEB_APP_BASE_URL || 'http://localhost:3000/';
      return axios.get(`${baseUrl}api/sitemap-slugs/`);
    }
  },
 

Конечная точка ${baseUrl}api/sitemap-slugs/ возвращает массив slugs [‘slug1′,’slug2’]

Ожидаемый результат

Мой sitemap.xml страница со всеми моими статическими маршрутами и динамическими маршрутами.

ОШИБКА

Ошибка на моем http://localhost:3000/sitemap.xml . введите описание изображения здесь

Надеюсь, я хорошо объяснил ситуацию и себя

Комментарии:

1. Может быть, попробуйте await это перед return .

2. @kissu спасибо, но нет, это может быть улучшением (я тоже пробовал раньше), но ошибка одинакова с или без async, await

3. Возможно, тип возвращаемого значения не является массивом

Ответ №1:

У меня была такая же проблема. Вы должны использовать свойство data ответа axios, если оно возвращает массив строк.

 routes: async () => {
      const result = await axios.get('https://www.example.com/api/blog-sitemap')
      return result.data;
 }