Authored by 周少峰

hbs

@@ -7,26 +7,29 @@ @@ -7,26 +7,29 @@
7 7
8 const config = require('./config/common'); 8 const config = require('./config/common');
9 9
  10 +global.Promise = require('bluebird');
  11 +
  12 +const yohoLib = require('yoho-node-lib');
  13 +
  14 +// 全局注册library
  15 +yohoLib.global(config);
  16 +
10 const express = require('express'); 17 const express = require('express');
11 const path = require('path'); 18 const path = require('path');
12 const bodyParser = require('body-parser'); 19 const bodyParser = require('body-parser');
13 const cookieParser = require('cookie-parser'); 20 const cookieParser = require('cookie-parser');
14 const favicon = require('serve-favicon'); 21 const favicon = require('serve-favicon');
  22 +
  23 +// const session = require('cookie-session');
15 const session = require('yoho-express-session'); 24 const session = require('yoho-express-session');
16 25
17 const memcached = require('connect-memcached'); 26 const memcached = require('connect-memcached');
18 -const hbs = require('express-handlebars');  
19 const pkg = require('./package.json'); 27 const pkg = require('./package.json');
20 28
21 -const yohoLib = require('yoho-node-lib');  
22 -  
23 const app = express(); 29 const app = express();
24 30
25 const MemcachedStore = memcached(session); 31 const MemcachedStore = memcached(session);
26 32
27 -// 全局注册library  
28 -yohoLib.global(config);  
29 -  
30 global.middleware = path.resolve('./doraemon/middleware'); 33 global.middleware = path.resolve('./doraemon/middleware');
31 global.utils = path.resolve('./utils'); 34 global.utils = path.resolve('./utils');
32 35
@@ -35,17 +38,17 @@ app.locals.devEnv = app.get('env') === 'development'; @@ -35,17 +38,17 @@ app.locals.devEnv = app.get('env') === 'development';
35 app.locals.version = pkg.version; 38 app.locals.version = pkg.version;
36 39
37 app.set('subdomain offset', 2); 40 app.set('subdomain offset', 2);
38 -app.set('view engine', '.hbs');  
39 -app.set('views', './doraemon/views');  
40 -app.set('view cache', true);  
41 -app.engine('.hbs', hbs({ 41 +app.use(global.yoho.hbs({
42 extname: '.hbs', 42 extname: '.hbs',
43 defaultLayout: 'layout', 43 defaultLayout: 'layout',
44 - layoutsDir: './doraemon/views',  
45 - partialsDir: './doraemon/views/partial', 44 + layoutsDir: path.join(__dirname, 'doraemon/views'),
  45 + partialsDir: path.join(__dirname, 'doraemon/views/partial'),
  46 + views: path.join(__dirname, 'doraemon/views'),
46 helpers: global.yoho.helpers 47 helpers: global.yoho.helpers
47 })); 48 }));
48 49
  50 +app.use(global.yoho.middleware());
  51 +
49 app.use(favicon(path.join(__dirname, '/public/favicon.ico'))); 52 app.use(favicon(path.join(__dirname, '/public/favicon.ico')));
50 app.use(express.static(path.join(__dirname, 'public'))); 53 app.use(express.static(path.join(__dirname, 'public')));
51 app.use(bodyParser.json()); 54 app.use(bodyParser.json());
@@ -5,8 +5,7 @@ @@ -5,8 +5,7 @@
5 */ 5 */
6 6
7 var express = require('express'), 7 var express = require('express'),
8 - path = require('path'),  
9 - hbs = require('express-handlebars'); 8 + path = require('path');
10 9
11 var app = express(); 10 var app = express();
12 11
@@ -17,12 +16,12 @@ app.on('mount', function(parent) { @@ -17,12 +16,12 @@ app.on('mount', function(parent) {
17 delete parent.locals.settings; // 不继承父 App 的设置 16 delete parent.locals.settings; // 不继承父 App 的设置
18 Object.assign(app.locals, parent.locals); 17 Object.assign(app.locals, parent.locals);
19 }); 18 });
20 -app.set('views', path.join(__dirname, 'views/action'));  
21 -app.engine('.hbs', hbs({ 19 +app.use(global.yoho.hbs({
22 extname: '.hbs', 20 extname: '.hbs',
23 defaultLayout: 'layout', 21 defaultLayout: 'layout',
24 layoutsDir: doraemon, 22 layoutsDir: doraemon,
25 - partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`], 23 + partialsDir: [path.join(__dirname, 'views/partial')],
  24 + views: path.join(__dirname, 'views/action'),
26 helpers: global.yoho.helpers 25 helpers: global.yoho.helpers
27 })); 26 }));
28 27
@@ -5,8 +5,7 @@ @@ -5,8 +5,7 @@
5 */ 5 */
6 6
7 var express = require('express'), 7 var express = require('express'),
8 - path = require('path'),  
9 - hbs = require('express-handlebars'); 8 + path = require('path');
10 9
11 var app = express(); 10 var app = express();
12 11
@@ -18,12 +17,12 @@ app.on('mount', function(parent) { @@ -18,12 +17,12 @@ app.on('mount', function(parent) {
18 Object.assign(app.locals, parent.locals); 17 Object.assign(app.locals, parent.locals);
19 }); 18 });
20 19
21 -app.set('views', path.join(__dirname, 'views/action'));  
22 -app.engine('.hbs', hbs({ 20 +app.use(global.yoho.hbs({
23 extname: '.hbs', 21 extname: '.hbs',
24 defaultLayout: 'layout', 22 defaultLayout: 'layout',
25 layoutsDir: doraemon, 23 layoutsDir: doraemon,
26 - partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`], 24 + partialsDir: [path.join(__dirname, 'views/partial')],
  25 + views: path.join(__dirname, 'views/action'),
27 helpers: global.yoho.helpers 26 helpers: global.yoho.helpers
28 })); 27 }));
29 28
@@ -5,14 +5,12 @@ @@ -5,14 +5,12 @@
5 */ 5 */
6 6
7 var express = require('express'), 7 var express = require('express'),
8 - path = require('path'),  
9 - hbs = require('express-handlebars'); 8 + path = require('path');
10 9
11 var app = express(); 10 var app = express();
12 11
13 // set view engin 12 // set view engin
14 var doraemon = path.join(__dirname, '../../doraemon/views'); // parent view root 13 var doraemon = path.join(__dirname, '../../doraemon/views'); // parent view root
15 -var partials = path.join(__dirname, './views'); // parent view root  
16 14
17 15
18 app.on('mount', function(parent) { 16 app.on('mount', function(parent) {
@@ -20,16 +18,15 @@ app.on('mount', function(parent) { @@ -20,16 +18,15 @@ app.on('mount', function(parent) {
20 Object.assign(app.locals, parent.locals); 18 Object.assign(app.locals, parent.locals);
21 }); 19 });
22 20
23 -app.set('views', path.join(__dirname, 'views/action'));  
24 -app.engine('.hbs', hbs({ 21 +app.use(global.yoho.hbs({
25 extname: '.hbs', 22 extname: '.hbs',
26 defaultLayout: 'layout', 23 defaultLayout: 'layout',
27 layoutsDir: doraemon, 24 layoutsDir: doraemon,
28 - partialsDir: [`${partials}/partial`, `${doraemon}/partial`], 25 + partialsDir: [path.join(__dirname, 'views/partial')],
  26 + views: path.join(__dirname, 'views/action'),
29 helpers: global.yoho.helpers 27 helpers: global.yoho.helpers
30 })); 28 }));
31 29
32 -  
33 // router 30 // router
34 app.use(require('./router')); 31 app.use(require('./router'));
35 32
@@ -6,27 +6,24 @@ @@ -6,27 +6,24 @@
6 'use strict'; 6 'use strict';
7 7
8 var express = require('express'), 8 var express = require('express'),
9 - path = require('path'),  
10 - hbs = require('express-handlebars'); 9 + path = require('path');
11 10
12 var app = express(); 11 var app = express();
13 12
14 // set view engin 13 // set view engin
15 var doraemon = path.join(__dirname, '../../doraemon/views'); // parent view root 14 var doraemon = path.join(__dirname, '../../doraemon/views'); // parent view root
16 - var partials = path.join(__dirname, './views'); // parent view root  
17 -  
18 15
19 app.on('mount', function(parent) { 16 app.on('mount', function(parent) {
20 delete parent.locals.settings; // 不继承父 App 的设置 17 delete parent.locals.settings; // 不继承父 App 的设置
21 Object.assign(app.locals, parent.locals); 18 Object.assign(app.locals, parent.locals);
22 }); 19 });
23 20
24 - app.set('views', path.join(__dirname, 'views/action'));  
25 - app.engine('.hbs', hbs({ 21 + app.use(global.yoho.hbs({
26 extname: '.hbs', 22 extname: '.hbs',
27 defaultLayout: 'layout', 23 defaultLayout: 'layout',
28 layoutsDir: doraemon, 24 layoutsDir: doraemon,
29 - partialsDir: [`${partials}/partial`, `${doraemon}/partial`], 25 + partialsDir: [path.join(__dirname, 'views/partial')],
  26 + views: path.join(__dirname, 'views/action'),
30 helpers: Object.assign(require('./helpers/pager'), global.yoho.helpers) 27 helpers: Object.assign(require('./helpers/pager'), global.yoho.helpers)
31 })); 28 }));
32 29
@@ -5,8 +5,7 @@ @@ -5,8 +5,7 @@
5 */ 5 */
6 6
7 var express = require('express'), 7 var express = require('express'),
8 - path = require('path'),  
9 - hbs = require('express-handlebars'); 8 + path = require('path');
10 9
11 var app = express(); 10 var app = express();
12 11
@@ -17,12 +16,13 @@ app.on('mount', function(parent) { @@ -17,12 +16,13 @@ app.on('mount', function(parent) {
17 delete parent.locals.settings; // 不继承父 App 的设置 16 delete parent.locals.settings; // 不继承父 App 的设置
18 Object.assign(app.locals, parent.locals); 17 Object.assign(app.locals, parent.locals);
19 }); 18 });
20 -app.set('views', path.join(__dirname, 'views/action'));  
21 -app.engine('.hbs', hbs({ 19 +
  20 +app.use(global.yoho.hbs({
22 extname: '.hbs', 21 extname: '.hbs',
23 defaultLayout: 'layout', 22 defaultLayout: 'layout',
24 layoutsDir: doraemon, 23 layoutsDir: doraemon,
25 - partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`], 24 + partialsDir: [path.join(__dirname, 'views/partial')],
  25 + views: path.join(__dirname, 'views/action'),
26 helpers: global.yoho.helpers 26 helpers: global.yoho.helpers
27 })); 27 }));
28 28
@@ -5,8 +5,7 @@ @@ -5,8 +5,7 @@
5 */ 5 */
6 'use strict'; 6 'use strict';
7 var express = require('express'), 7 var express = require('express'),
8 - path = require('path'),  
9 - hbs = require('express-handlebars'); 8 + path = require('path');
10 9
11 var passport = require('passport'); 10 var passport = require('passport');
12 11
@@ -20,12 +19,12 @@ app.on('mount', function(parent) { @@ -20,12 +19,12 @@ app.on('mount', function(parent) {
20 Object.assign(app.locals, parent.locals); 19 Object.assign(app.locals, parent.locals);
21 }); 20 });
22 21
23 -app.set('views', path.join(__dirname, 'views/action'));  
24 -app.engine('.hbs', hbs({ 22 +app.use(global.yoho.hbs({
25 extname: '.hbs', 23 extname: '.hbs',
26 defaultLayout: 'layout', 24 defaultLayout: 'layout',
27 layoutsDir: doraemon, 25 layoutsDir: doraemon,
28 partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`], 26 partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`],
  27 + views: path.join(__dirname, 'views/action'),
29 helpers: global.yoho.helpers 28 helpers: global.yoho.helpers
30 })); 29 }));
31 30
@@ -5,8 +5,7 @@ @@ -5,8 +5,7 @@
5 */ 5 */
6 6
7 var express = require('express'), 7 var express = require('express'),
8 - path = require('path'),  
9 - hbs = require('express-handlebars'); 8 + path = require('path');
10 9
11 var app = express(); 10 var app = express();
12 11
@@ -18,12 +17,12 @@ app.on('mount', function(parent) { @@ -18,12 +17,12 @@ app.on('mount', function(parent) {
18 Object.assign(app.locals, parent.locals); 17 Object.assign(app.locals, parent.locals);
19 }); 18 });
20 19
21 -app.set('views', path.join(__dirname, 'views/action'));  
22 -app.engine('.hbs', hbs({ 20 +app.use(global.yoho.hbs({
23 extname: '.hbs', 21 extname: '.hbs',
24 defaultLayout: 'layout', 22 defaultLayout: 'layout',
25 layoutsDir: doraemon, 23 layoutsDir: doraemon,
26 - partialsDir: [path.join(__dirname, 'views/partial'), `${doraemon}/partial`], 24 + partialsDir: [path.join(__dirname, 'views/partial')],
  25 + views: path.join(__dirname, 'views/action'),
27 helpers: global.yoho.helpers 26 helpers: global.yoho.helpers
28 })); 27 }));
29 28
@@ -36,6 +36,7 @@ @@ -36,6 +36,7 @@
36 "captchapng": "0.0.1", 36 "captchapng": "0.0.1",
37 "connect-memcached": "^0.2.0", 37 "connect-memcached": "^0.2.0",
38 "cookie-parser": "^1.4.3", 38 "cookie-parser": "^1.4.3",
  39 + "cookie-session": "^1.2.0",
39 "express": "^4.13.1", 40 "express": "^4.13.1",
40 "handlebars": "^4.0.5", 41 "handlebars": "^4.0.5",
41 "express-handlebars": "^3.0.0", 42 "express-handlebars": "^3.0.0",
@@ -62,7 +63,7 @@ @@ -62,7 +63,7 @@
62 "winston": "^2.2.0", 63 "winston": "^2.2.0",
63 "winston-daily-rotate-file": "^1.1.4", 64 "winston-daily-rotate-file": "^1.1.4",
64 "yoho-express-session": "^1.14.1", 65 "yoho-express-session": "^1.14.1",
65 - "yoho-node-lib": "0.1.19" 66 + "yoho-node-lib": "0.1.23"
66 }, 67 },
67 "devDependencies": { 68 "devDependencies": {
68 "autoprefixer": "^6.3.6", 69 "autoprefixer": "^6.3.6",
@@ -104,6 +105,7 @@ @@ -104,6 +105,7 @@
104 "yoho-handlebars": "^4.0.5", 105 "yoho-handlebars": "^4.0.5",
105 "yoho-jquery": "^1.12.4", 106 "yoho-jquery": "^1.12.4",
106 "yoho-jquery-lazyload": "^1.9.7", 107 "yoho-jquery-lazyload": "^1.9.7",
  108 + "yoho-jquery-pjax": "0.0.1",
107 "yoho-jquery-placeholder": "^2.3.1", 109 "yoho-jquery-placeholder": "^2.3.1",
108 "yoho-slider": "0.0.2", 110 "yoho-slider": "0.0.2",
109 "yoho-jquery-dotdotdot": "0.0.1", 111 "yoho-jquery-dotdotdot": "0.0.1",