Handle errors in request pipes

This commit is contained in:
James Allen 2014-11-24 13:58:41 +00:00
parent 970125b7a8
commit b8fdbdb406
4 changed files with 17 additions and 4 deletions

View file

@ -22,6 +22,7 @@ module.exports = BlogController =
logger.log url:url, "proxying request to blog api"
request.get blogUrl, (err, r, data)->
return next(err) if err?
if r?.statusCode == 404
return ErrorController.notFound(req, res, next)
data = data.trim()
@ -37,4 +38,7 @@ module.exports = BlogController =
BlogController.getPage req, 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

View file

@ -31,4 +31,7 @@ module.exports = UniversityController =
UniversityController.getPage req, 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

View file

@ -27,7 +27,10 @@ module.exports =
zipUrl = "#{settings.apis.web.url}#{zipUrl}"
else
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', ->
ProjectUploadManager.createProjectFromZipArchive req.session.user._id, req.session.templateData.templateName, dumpPath, (err, project)->
if err?

View file

@ -8,6 +8,9 @@ module.exports = (req, res, next)->
redirectUrl = settings.proxyUrls[requestedUrl]
if redirectUrl?
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
next()