39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | module.exports.rejectableRequest = function rejectableRequest(req, res, promise, msg) { | ||
|  |   return promise.error(function (err) { | ||
|  |     res.error(err); | ||
|  |   }).catch(function (err) { | ||
|  |     console.error('[ERROR] \'' + msg + '\''); | ||
|  |     console.error(err.message); | ||
|  |     console.error(err.stack); | ||
|  | 
 | ||
|  |     res.error(err); | ||
|  |   }); | ||
|  | }; | ||
|  | 
 | ||
|  | module.exports.promisableRequest = | ||
|  | module.exports.promiseRequest = function promiseRequest(req, res, promise, msg) { | ||
|  |   return promise.then(function (result) { | ||
|  |     if (result._cache) { | ||
|  |       res.setHeader('Cache-Control', 'public, max-age=' + (result._cache / 1000)); | ||
|  |       res.setHeader('Expires', new Date(Date.now() + result._cache).toUTCString()); | ||
|  |     } | ||
|  |     if (result._mime) { | ||
|  |       res.setHeader('Content-Type', result._mime); | ||
|  |     } | ||
|  |     if (result._value) { | ||
|  |       result = result._value; | ||
|  |     } | ||
|  |     res.send(result); | ||
|  |   }).error(function (err) { | ||
|  |     res.error(err); | ||
|  |   }).catch(function (err) { | ||
|  |     console.error('[ERROR] \'' + msg + '\''); | ||
|  |     console.error(err.message); | ||
|  |     console.error(err.stack); | ||
|  | 
 | ||
|  |     res.error(err); | ||
|  |   }); | ||
|  | }; |