É minha opinião que, desde que alguém tenha experiência de codificação na vida real suficiente e conheça o ecossistema, o Node.js é perfeitamente adequado não apenas para pequenos projetos de API, mas também para construir projetos genéricos da web .
Uma das tarefas relacionadas ao SEO que você precisa lidar ao construir um projeto genérico da web é gerar um arquivo sitemap.xml .
Embora certamente haja vários módulos por aí que podem ajudá-lo com essa tarefa, há uma maneira fácil, direta e sem dependências de fazê-lo.
Configure uma rota (ou método do controlador) para responder get /sitemap.xml
com as informações relevantes – neste caso, estou usando IcedCoffeeScript para um fluxo de controle assíncrono elegante – e certifique-se de definir o tipo de conteúdo de resposta paraapplication/xml
:
callback: (req, res, next) ->
appUrl = 'http://www.example.com'
now = moment(new Date).format 'YYYY-MM-DD'
errors = {}
await
Category.find()
.select('key')
.where('activeOffersCount').gt(0)
.lean().exec defer errors.categories, categories
...
Product.find()
.select('uid date')
.sort('-createdAt')
.lean().exec defer errors.products, products
for own operation, err of errors
return next err if err
res.header 'Content-Type', 'application/xml'
res.render 'public/sitemap', { appUrl, now, categories, products }
Então, na sua opinião – estou usando Jade , então neste caso é sitemap.jade
– você pode ter algo assim:
!!! xml
urlset(>="http://www.sitemaps.org/schemas/sitemap/0.9")
//- Home page
url
loc= appUrl
lastmod= now
changefreq daily
priority= 0.8
...
//- Categories
each category in categories
url
loc #{appUrl}/offers/#{category.key}
lastmod= now
changefreq daily
priority= 0.7
//- Products
each product in products
url
loc #{appUrl}/#{product.uid}.html
lastmod= product.date
changefreq weekly
priority= 0.5
E pronto.