1+ 'use strict' ;
12var connect = require ( 'connect' ) ,
23 bodyParser = require ( 'body-parser' ) ,
34 https = require ( 'https' ) ,
45 domain = require ( 'domain' ) ,
56 crypto = require ( 'crypto' ) ,
67 version = require ( '../package.json' ) . version ,
78 AV = require ( './av-extra' ) ,
8- utils = require ( './utils' ) ;
9+ utils = require ( './utils' ) ,
910 avosExpressCookieSession = require ( './avosExpressCookieSession' ) ,
1011 avosExpressHttpsRedirect = require ( './avosExpressHttpsRedirect' ) ,
1112 debug = require ( 'debug' ) ( 'AV:LeanEngine' ) ;
@@ -43,7 +44,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
4344[ '1' , '1.1' ] . forEach ( function ( apiVersion ) {
4445 [ '' , '/__engine' ] . forEach ( function ( urlNamespace ) {
4546 var route = '/' + apiVersion + '/functions' ;
46- if ( urlNamespace != '' ) {
47+ if ( urlNamespace !== '' ) {
4748 route = urlNamespace + '/' + apiVersion + '/functions' ;
4849 }
4950
@@ -83,7 +84,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
8384
8485 // parse authInfo
8586 Cloud . use ( route , function ( req , res , next ) {
86- var appId , appKey , contentType , param , prod , prodHeader , prodValue , sessionToken ;
87+ var appId , appKey , masterKey , contentType , param , prod , prodHeader , prodValue , sessionToken ;
8788 contentType = req . headers [ 'content-type' ] ;
8889 if ( / ^ t e x t \/ p l a i n .* / i. test ( contentType ) ) {
8990 if ( req . body && req . body !== '' ) {
@@ -146,7 +147,10 @@ Cloud.use('/__engine/1/ping', function(req, res) {
146147 }
147148 requestSign = req . headers [ 'x-avoscloud-request-sign' ] ;
148149 if ( requestSign ) {
149- _ref = requestSign . split ( ',' ) , sign = _ref [ 0 ] , timestamp = _ref [ 1 ] , master = _ref [ 2 ] ;
150+ _ref = requestSign . split ( ',' ) ;
151+ sign = _ref [ 0 ] ;
152+ timestamp = _ref [ 1 ] ;
153+ master = _ref [ 2 ] ;
150154 key = master === 'master' ? AV . masterKey : AV . applicationKey ;
151155 validSign = signByKey ( timestamp , key ) ;
152156 if ( validSign === sign . toLowerCase ( ) ) {
@@ -161,7 +165,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
161165 } ) ;
162166
163167 // get metadatas func
164- Cloud . use ( route + '/_ops/metadatas' , function ( req , res , next ) {
168+ Cloud . use ( route + '/_ops/metadatas' , function ( req , res ) {
165169 if ( req . AV . authMasterKey ) {
166170 return resp ( res , Object . keys ( Cloud . __code ) ) ;
167171 }
@@ -177,7 +181,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
177181 next ( ) ;
178182 } ,
179183 error : function ( user , err ) {
180- next ( err )
184+ next ( err ) ;
181185 }
182186 } ) ;
183187 } else if ( req . body . user ) {
@@ -210,7 +214,7 @@ Cloud.use('/__engine/1/ping', function(req, res) {
210214 var meta = {
211215 remoteAddress : req . headers [ 'x-real-ip' ] || req . headers [ 'x-forwarded-for' ] || req . connection . remoteAddress ,
212216 } ;
213- split = req . url . split ( '/' ) ;
217+ var split = req . url . split ( '/' ) ;
214218 if ( split . length == 2 ) { // cloud function
215219 call ( split [ 1 ] , req . body , req . AV . user , meta , function ( err , data ) {
216220 cb ( err , data ) ;
@@ -237,9 +241,10 @@ Cloud.use('/__engine/1/ping', function(req, res) {
237241 }
238242 } ) ;
239243
240- Cloud . use ( route , function ( err , req , res , next ) {
244+ // next 参数即使不使用,也一定要存在,否则 error handler 不生效
245+ Cloud . use ( route , function ( err , req , res , next ) { // jshint ignore:line
241246 respError ( res , err ) ;
242- } )
247+ } ) ;
243248 } ) ;
244249} ) ;
245250
@@ -268,10 +273,6 @@ var respBare = function(res, data) {
268273 return res . end ( JSON . stringify ( data ) ) ;
269274} ;
270275
271- var respOk = function ( res ) {
272- resp ( res , 'ok' ) ;
273- } ;
274-
275276var respError = function ( res , err ) {
276277 res . setHeader ( 'Content-Type' , 'application/json; charset=UTF-8' ) ;
277278 res . statusCode = err . statusCode || 400 ;
@@ -334,12 +335,12 @@ var hookMarks = [
334335// 如果对象有 hook 标记,则需要明确 set 一次,标记才会保存在 changed 列表
335336// 这样调用 REST API 时才会将标记一同传到存储服务端
336337var setHookMark = function ( obj ) {
337- for ( i in hookMarks ) {
338+ for ( var i in hookMarks ) {
338339 if ( obj . get ( hookMarks [ i ] ) ) {
339340 obj . set ( hookMarks [ i ] , obj . get ( hookMarks [ i ] ) ) ;
340341 }
341342 }
342- }
343+ } ;
343344
344345var classHook = function ( className , hook , object , user , meta , cb ) {
345346 if ( ! Cloud . __code [ hook + className ] ) {
@@ -349,7 +350,7 @@ var classHook = function(className, hook, object, user, meta, cb) {
349350 }
350351 var obj = createAVObject ( className ) ;
351352 obj . _finishFetch ( object , true ) ;
352- setHookMark ( obj )
353+ setHookMark ( obj ) ;
353354 try {
354355 if ( hook . indexOf ( '__after_' ) === 0 ) {
355356 // after 的 hook 不需要 response 参数,并且请求默认返回 ok
@@ -419,7 +420,7 @@ var onCompleteBigQueryJob = function(data) {
419420 } catch ( err ) {
420421 console . warn ( 'Execute onCompleteBigQueryJob failed with error: ' + ( err . stack || err ) ) ;
421422 }
422- }
423+ } ;
423424
424425Cloud . __code = { } ;
425426
0 commit comments