如何使用sitemap.js
How do I use sitemap.js?
我安装了节点模块sitemap.js来为我的网站生成sitemap.xml。然而,我对node/express/sains还很陌生,所以我不太理解git页面上的说明。在"用法"部分下,代码应该放在哪里?我该如何执行模块以便生成xml?
很明显,这是针对我的表的,但这就是我使用sitemap
创建静态sitemap.xml
的方式(我每周使用cron
更新一次)。
'use strict';
var sm = require('sitemap')
var fs = require('fs');
var photoModel = require('../../models/photo');
var db = require('../../models/db');
var config = require('../../config');
var hostname = config.siteUrl
var queryParams = {
active: 1,
sortOrder: 'desc',
sortBy: 'relevance',
}
var photoQuery = db.rawSQL([
'SELECT img_id, tags',
'FROM images',
'WHERE active = 1'
]);
function createSiteMap(myURLs) {
var sitemap = sm.createSitemap({
hostname: hostname,
cacheTime: 600000, //600 sec (10 min) cache purge period
urls: myURLs
});
fs.writeFileSync("public/sitemap.xml", sitemap.toString());
process.exit();
}
function uniq(a) {
var seen = {};
return a.filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
function getPhotos() {
return new Promise(function(resolve, reject) {
var siteMapArray = new Array()
var tags = new Array()
siteMapArray.push ({ url: '/' , changefreq: 'weekly', priority: 0.8, lastmodrealtime: true, lastmodfile: 'views/home.hbs' },)
db.sequelize.query(photoQuery, {
replacements: queryParams
}).spread(function(makeSiteMap) {
makeSiteMap.forEach(function(obj) {
var siteLink = { url: 'photo/' + obj.img_id, changefreq: 'weekly', priority: 0.6, lastmodrealtime: true }
siteMapArray.push(siteLink);
obj.tags = obj.tags.split(',').map(function(e) {
return e.trim().split(' ').join('+');
});
for (var tag in obj.tags) {
tags.push(obj.tags[tag])
}
});
resolve (siteMapArray);
var uniqueTags = uniq(tags);
for (var tag in uniqueTags) {
var siteLink = { url: '/search/' + uniqueTags[tag], changefreq: 'weekly', priority: 0.8, lastmodrealtime: true }
siteMapArray.push (siteLink);
}
createSiteMap(siteMapArray);
});
});
};
getPhotos();
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- Selectize.js:如何对整数值的选项进行排序
- 如何使用sitemap.js