@@ -4,6 +4,7 @@ var connect = require('connect'),
44 https = require ( 'https' ) ,
55 domain = require ( 'domain' ) ,
66 crypto = require ( 'crypto' ) ,
7+ timeout = require ( 'connect-timeout' ) ,
78 version = require ( '../package.json' ) . version ,
89 AV = require ( './av-extra' ) ,
910 utils = require ( './utils' ) ,
@@ -31,6 +32,8 @@ if (https.globalAgent && https.globalAgent.options) {
3132 https . globalAgent . options . rejectUnauthorized = false ;
3233}
3334
35+ var TIMEOUT = '15s' ;
36+
3437AV . Cloud . CookieSession = avosExpressCookieSession ( AV ) ;
3538AV . Cloud . HttpsRedirect = avosExpressHttpsRedirect ( AV ) ;
3639
@@ -59,6 +62,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
5962 next ( ) ;
6063 } ) ;
6164
65+ Cloud . use ( route , timeout ( TIMEOUT ) ) ;
6266 Cloud . use ( route , bodyParser . urlencoded ( { extended : false } ) ) ;
6367 Cloud . use ( route , bodyParser . json ( ) ) ;
6468 Cloud . use ( route , bodyParser . text ( ) ) ;
@@ -72,7 +76,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
7276 d . add ( req ) ;
7377 d . add ( res ) ;
7478 d . on ( 'error' , function ( err ) {
75- console . error ( 'LeanEngine function uncaughtException url=%s, msg=%s' , req . url , err . stack || err . message || err ) ;
79+ console . error ( 'LeanEngine function uncaughtException url=%s, msg=%s' , req . originalUrl , err . stack || err . message || err ) ;
7680 if ( ! res . finished ) {
7781 res . statusCode = 500 ;
7882 res . setHeader ( 'content-type' , 'application/json; charset=UTF-8' ) ;
@@ -261,6 +265,11 @@ Cloud.use('/__engine/1/ping', function(req, res) {
261265
262266 // next 参数即使不使用,也一定要存在,否则 error handler 不生效
263267 Cloud . use ( route , function ( err , req , res , next ) { // jshint ignore:line
268+ if ( req . timedout ) {
269+ console . error ( 'LeanEngine function timeout, url=%s, timeout=%d' , req . originalUrl , err . timeout ) ;
270+ err . code = 124 ; // https://leancloud.cn/docs/error_code.html#_124
271+ err . message = 'The request timed out on the server.' ;
272+ }
264273 respError ( res , err ) ;
265274 } ) ;
266275 } ) ;
0 commit comments