فهرست منبع

Handle errors in request pipes

James Allen 12 سال پیش
والد
کامیت
b8fdbdb406

+ 5 - 1
services/web/app/coffee/Features/Blog/BlogController.coffee

@@ -22,6 +22,7 @@ module.exports = BlogController =
 
 
 		logger.log url:url, "proxying request to blog api"
 		logger.log url:url, "proxying request to blog api"
 		request.get blogUrl, (err, r, data)->
 		request.get blogUrl, (err, r, data)->
+			return next(err) if err?
 			if r?.statusCode == 404
 			if r?.statusCode == 404
 				return ErrorController.notFound(req, res, next)
 				return ErrorController.notFound(req, res, next)
 			data = data.trim()
 			data = data.trim()
@@ -37,4 +38,7 @@ module.exports = BlogController =
 		BlogController.getPage req, res
 		BlogController.getPage req, res
 
 
 	_directProxy: (originUrl, res)->
 	_directProxy: (originUrl, res)->
-		request.get(originUrl).pipe res
+		upstream = request.get(originUrl)
+		upstream.on "error", (error) ->
+			logger.error err: error, "blog proxy error"
+		upstream.pipe res

+ 4 - 1
services/web/app/coffee/Features/StaticPages/UniversityController.coffee

@@ -31,4 +31,7 @@ module.exports = UniversityController =
 		UniversityController.getPage req, res
 		UniversityController.getPage req, res
 
 
 	_directProxy: (originUrl, res)->
 	_directProxy: (originUrl, res)->
-		request.get(originUrl).pipe res
+		upstream = request.get(originUrl)
+		upstream.on "error", (error) ->
+			logger.error err: error, "university proxy error"
+		upstream.pipe res

+ 4 - 1
services/web/app/coffee/Features/Templates/TemplatesController.coffee

@@ -27,7 +27,10 @@ module.exports =
 			zipUrl = "#{settings.apis.web.url}#{zipUrl}"
 			zipUrl = "#{settings.apis.web.url}#{zipUrl}"
 		else
 		else
 			zipUrl = "#{settings.apis.templates.url}#{zipUrl}"
 			zipUrl = "#{settings.apis.templates.url}#{zipUrl}"
-		request(zipUrl).pipe(writeStream)
+		zipReq = request(zipUrl)
+		zipReq.on "error", (error) ->
+			logger.error err: error, "error getting zip from template API"
+		zipReq.pipe(writeStream)
 		writeStream.on 'close', ->
 		writeStream.on 'close', ->
 			ProjectUploadManager.createProjectFromZipArchive req.session.user._id, req.session.templateData.templateName, dumpPath, (err, project)->
 			ProjectUploadManager.createProjectFromZipArchive req.session.user._id, req.session.templateData.templateName, dumpPath, (err, project)->
 				if err?
 				if err?

+ 4 - 1
services/web/app/coffee/infrastructure/OldAssetProxy.coffee

@@ -8,6 +8,9 @@ module.exports = (req, res, next)->
 	redirectUrl = settings.proxyUrls[requestedUrl]
 	redirectUrl = settings.proxyUrls[requestedUrl]
 	if redirectUrl?
 	if redirectUrl?
 		logger.log redirectUrl:redirectUrl, reqUrl:req.url, "proxying url"
 		logger.log redirectUrl:redirectUrl, reqUrl:req.url, "proxying url"
-		request(redirectUrl).pipe(res)
+		upstream = request(redirectUrl)
+		upstream.on "error", (error) ->
+			logger.error err: error, "error in OldAssetProxy"
+		upstream.pipe(res)
 	else
 	else
 		next()
 		next()