Я хочу написать функцию, которая может генерировать карту сайта, например https://www.bbc.co.uk/sitemap.xml. Итак, вот мой код
module.exports.sitemapTag = async (req, res) => {
try {
const defaultPath = 'https://example.com/tag';
const tagList = [];
const data = { tags: await TagService.getAllTag() };
// eslint-disable-next-line no-restricted-syntax
for (const item of data.tags) {
const element = {
sitemap: {
tag: defaultPath.concat(item.tagText),
tagNum: item.tagNumber,
},
};
tagList.push(element);
}
const feed = xmlbuilder.create(tagList, { encoding: 'utf-8' });
return res.status(200).send(feed.end({ pretty: true }));
} catch (error) {
console.log(error);
return res.status(400).json(null);
}
};
Но результат, когда я получил доступ к localhost://9191/api/v1/sitemapTag
, представляет собой просто строку, подобную этой:
http://example.com/tag/Cookies 2 http://example.com/tag/Candy 1 http://example.com/tag/Chocolate 3
Затем я попытался использовать: console.log(feed.end({ pretty: true }));
, чтобы увидеть, что произошло Мой журнал консоли выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<sitemap>
<tag>http://example.com/tag/Cookies</tag>
<tagNum>2</tagNum>
</sitemap>
<sitemap>
<tag>http://example.com/tag/Candy</tag>
<tagNum>1</tagNum>
</sitemap>
<sitemap>
<tag>http://example.com/tag/Chocolate</tag>
<tagNum>3</tagNum>
</sitemap>
Как я могу решить это правильно?