Authored by biao

update for seo

... ... @@ -26,14 +26,19 @@ const pkg = require('./package.json');
const app = express();
const MemcachedStore = memcached(session);
// 指定libray目录
global.library = path.resolve('./library');
global.middleware = path.resolve('./doraemon/middleware');
global.utils = path.resolve('./utils');
const seo = require(`${global.middleware}/seo`);
// 向模板注入变量
app.locals.devEnv = app.get('env') === 'development';
app.locals.version = pkg.version;
// 指定libray目录
global.library = path.resolve('./library');
global.middleware = path.resolve('./doraemon/middleware');
app.set('view engine', '.hbs');
... ... @@ -69,9 +74,13 @@ app.use((req, res, next) => {
if (req.session && _.isNumber(req.session._LOGIN_UID)) {
req.user.uid = req.session._LOGIN_UID;
}
next();
});
app.use(seo());
// dispatcher
require('./dispatch')(app);
... ...
... ... @@ -14,6 +14,7 @@ var app = express();
var doraemon = path.join(__dirname, '../../doraemon/views'); // parent view root
var partials = path.join(__dirname, './views'); // parent view root
app.on('mount', function(parent) {
delete parent.locals.settings; // 不继承父 App 的设置
Object.assign(app.locals, parent.locals);
... ... @@ -28,6 +29,7 @@ app.engine('.hbs', hbs({
helpers: require('../../library/helpers')
}));
// router
app.use(require('./router'));
... ...
... ... @@ -11,7 +11,7 @@ const ServiceAPI = require(`${global.library}/api`).ServiceAPI;
const SearchAPI = require(`${global.library}/api`).SearchAPI;
const sign = require(`${global.library}/sign`);
const helpers = require(`${global.library}/helpers`);
const images = require(`${global.middleware}/images`);
const images = require(`${global.utils}/images`);
const serviceApi = new ServiceAPI();
... ...
... ... @@ -11,12 +11,38 @@ const cRoot = './controllers';
// Your controller here
const channelController = require(`${cRoot}/index`);
const seo = require(`${global.middleware}/seo`);
const seoMap = {
/* eslint-disable */
boys: {
title: 'YOHO!有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证',
keywords: 'Yoho! 有货官网,潮流志,潮流男装,潮牌,美国潮牌,日本潮牌,香港潮牌,潮牌店,新品首发,欧美潮流,全球购,代购,时尚,流行,特卖,B2C,正品,购物网站,网上购物,货到付款',
description: 'YOHO! 有货,年轻人潮流购物中心,中国最大的潮流商品购物网站。100%品牌正品保证,支持货到付款。作为YOHO!旗下的购物平台,汇集了全球潮流时尚商品和中国最流行的商品,也是国内最大的原创文化商品平台,也是香港,台湾地区流行商品的集中地。同时包含日本、韩国等众多国外潮流品牌,带给您全新潮流购物体验。'
},
girls: {
title: '女生|时尚潮流女装,日韩女装,潮牌女装全球购|YOHO!BUY有货 100%正品保证',
keywords: '女生服饰,时尚潮流女装,日韩女装,女装正品购物网站,女装全球购',
description: 'YOHO!BUY有货官网女生频道汇集了全球女装潮流时尚,提供时尚潮流女装,日版女装,韩版女装,潮牌女装正品全球购。YOHO!BUY有货购物100%正品保证,支持货到付款。'
},
kids: {
title: '潮童|男童装,女童装,韩版童装,儿童服装服饰|YOHO!BUY有货 100%正品保证',
keywords: '潮童,男童装,女童装,韩版童装,儿童服装服饰',
description: 'YOHO!BUY有货官网潮童频道汇集了全球潮童潮流时尚,提供新款男童装,女童装,韩版童装,儿童服装服饰正品全球购。YOHO!BUY有货购物100%正品保证,支持货到付款。'
},
lifestyle: {
title: '创意生活|创意生活馆,潮流创意家居,家居生活用品|YOHO!BUY有货 100%正品保证',
keywords: '创意生活,创意生活馆,潮流家居,潮流创意家居,家居生活用品,YOHO!有货',
description: 'YOHO!BUY有货官网创意生活频道汇集了创意生活馆,潮流创意家居,家居生活用品等正品网购,给您的生活带来更多创意。YOHO!BUY有货购物100%正品保证,支持货到付款。'
}
/* eslint-enable */
};
// 频道页路由
router.get('/', channelController.index);
router.get('/woman', channelController.index);
router.get('/kids', channelController.index);
router.get('/lifestyle', channelController.index);
router.get('/', seo(seoMap.boys), channelController.index);
router.get('/woman', seo(seoMap.girls), channelController.index);
router.get('/kids', seo(seoMap.kids), channelController.index);
router.get('/lifestyle', seo(seoMap.lifestyle), channelController.index);
// ajax
router.get('/getbrandFloorDataAjax', channelController.getbrandFloorDataAjax);
... ...
... ... @@ -14,11 +14,12 @@ module.exports = {
siteUrl: 'http://localhost:6002/',
domains: {
api: 'http://testapi.yoho.cn:28078/',
service: 'http://testservice.yoho.cn:28077/',
// service: 'http://testservice.yoho.cn:28077/',
// api: 'http://192.168.102.205:8080/gateway/',
// service: 'http://testservice.yoho.cn:28077/',
// service: 'http://service.api.yohobuy.com/',
service: 'http://service.api.yohobuy.com/',
search: 'http://192.168.102.216:8080/yohosearch/'
},
useOneapm: false,
... ...
'use strict';
const _ = require('lodash');
module.exports = seoData => {
const defaultSeoData = {
/* eslint-disable */
title: 'YOHO!有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证',
keywords: 'Yoho! 有货官网,潮流志,潮流男装,潮牌,美国潮牌,日本潮牌,香港潮牌,潮牌店,新品首发,欧美潮流,全球购,代购,时尚,流行,特卖,B2C,正品,购物网站,网上购物,货到付款',
description: 'YOHO! 有货,年轻人潮流购物中心,中国最大的潮流商品购物网站。100%品牌正品保证,支持货到付款。作为YOHO!旗下的购物平台,汇集了全球潮流时尚商品和中国最流行的商品,也是国内最大的原创文化商品平台,也是香港,台湾地区流行商品的集中地。同时包含日本、韩国等众多国外潮流品牌,带给您全新潮流购物体验。'
/* eslint-enable */
};
seoData = _.merge(defaultSeoData, seoData);
return (req, res, next) => {
if (!req.xhr) {
res.locals.title = seoData.title;
res.locals.keywords = seoData.keywords;
res.locals.description = seoData.description;
}
next();
};
};
... ...
... ... @@ -13,14 +13,6 @@ const sign = require(`${global.library}/sign`);
const serviceApi = new ServiceAPI();
/**
* 获取公共配置
* @param undefined
* @return {Object} 配置对象
*/
const commonConfig = () => ({
title: 'YOHO!有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证'
});
const getChannelIndex = type => {
const channelMap = {
... ... @@ -187,7 +179,6 @@ const getSubNav = (data, type) => {
* @return {object} 头部数据
*/
exports.setHeaderData = (resData, type) => {
let config = commonConfig();
let data = {
headerData: {
header: true,
... ... @@ -202,7 +193,7 @@ exports.setHeaderData = (resData, type) => {
data.headerData.navbars[getChannelIndex(type)].active = true;
}
return _.merge(config, data);
return data;
};
... ...
'use strict';
const _ = require('lodash');
module.exports = seoData => {
const defaultSeoData = {
/* eslint-disable */
title: 'YOHO!有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证',
keywords: 'Yoho! 有货官网,潮流志,潮流男装,潮牌,美国潮牌,日本潮牌,香港潮牌,潮牌店,新品首发,欧美潮流,全球购,代购,时尚,流行,特卖,B2C,正品,购物网站,网上购物,货到付款',
description: 'YOHO! 有货,年轻人潮流购物中心,中国最大的潮流商品购物网站。100%品牌正品保证,支持货到付款。作为YOHO!旗下的购物平台,汇集了全球潮流时尚商品和中国最流行的商品,也是国内最大的原创文化商品平台,也是香港,台湾地区流行商品的集中地。同时包含日本、韩国等众多国外潮流品牌,带给您全新潮流购物体验。'
/* eslint-enable */
};
_.merge(defaultSeoData, seoData);
return (req, res, next) => {
if (!req.xhr) {
res.locals.title = seoData.title;
res.locals.keywords = seoData.keywords;
res.locals.description = seoData.description;
}
next();
};
};
... ...