@@ -19,9 +19,9 @@ var app = express();
1919app . engine ( 'handlebars' , exphbs ( {
2020 defaultLayout : 'main' ,
2121 partialsDir : [ 'views/partials/' ]
22- } ) ) ; < % } % >
22+ } ) ) ; < % } % > < % if ( options . viewEngine != 'marko' ) { % >
2323app . set ( 'views' , path . join ( __dirname , 'views' ) ) ;
24- app.set('view engine', '< %= options . viewEngine % > ');
24+ app . set ( 'view engine' , '<%= options.viewEngine %>' ) ; < % } % >
2525
2626// app.use(favicon(__dirname + '/public/img/favicon.ico'));
2727app . use ( logger ( 'dev' ) ) ;
@@ -37,35 +37,47 @@ app.use('/users', users);
3737
3838/// catch 404 and forward to error handler
3939app . use ( function ( req , res , next ) {
40- var err = new Error ( 'Not Found' ) ;
41- err . status = 404 ;
42- next ( err ) ;
40+ var err = new Error ( 'Not Found' ) ;
41+ err . status = 404 ;
42+ next ( err ) ;
4343} ) ;
4444
4545/// error handlers
4646
4747// development error handler
4848// will print stacktrace
49+ < % if ( options . viewEngine == 'marko' ) { % >
50+ var errorTemplate = require ( 'marko' ) . load ( require . resolve ( './views/error.marko' ) ) ; < % } % >
4951if ( app . get ( 'env' ) === 'development' ) {
50- app . use ( function ( err , req , res , next ) {
51- res . status ( err . status || 500 ) ;
52- res . render ( 'error' , {
53- message : err . message ,
54- error : err ,
55- title : 'error'
52+ app . use ( function ( err , req , res , next ) {
53+ res . status ( err . status || 500 ) ; < % if ( options . viewEngine == 'marko' ) { % >
54+ errorTemplate . render ( {
55+ message : err . message ,
56+ error : err ,
57+ title : 'error'
58+ } , res ) ; < % } else { % >
59+ res . render ( 'error' , {
60+ message : err . message ,
61+ error : err ,
62+ title : 'error'
63+ } ) ; < % } % >
5664 } ) ;
57- } ) ;
5865}
5966
6067// production error handler
6168// no stacktraces leaked to user
6269app . use ( function ( err , req , res , next ) {
63- res . status ( err . status || 500 ) ;
64- res . render ( 'error' , {
65- message : err . message ,
66- error : { } ,
67- title : 'error'
68- } ) ;
70+ res . status ( err . status || 500 ) ; < % if ( options . viewEngine == 'marko' ) { % >
71+ errorTemplate . render ( {
72+ message : err . message ,
73+ error : err ,
74+ title : 'error'
75+ } , res ) ; < % } else { % >
76+ res . render ( 'error' , {
77+ message : err . message ,
78+ error : { } ,
79+ title : 'error'
80+ } ) ; < % } % >
6981} ) ;
7082
7183
0 commit comments