@@ -30,10 +30,12 @@ function handler (req, res, next) {
3030 var ldp = req . app . locals . ldp
3131 var includeBody = req . method === 'GET'
3232 var negotiator = new Negotiator ( req )
33- var requestedType = negotiator . mediaType ( )
34- var possibleRDFType = negotiator . mediaType ( RDFs )
3533 var baseUri = utils . uriBase ( req )
3634 var path = res . locals . path || req . path
35+ var requestedType = negotiator . mediaType ( )
36+ var possibleRDFType = negotiator . mediaType ( RDFs )
37+ // Fallback to text/turtle if content type is unknown
38+ possibleRDFType = ( ! possibleRDFType ) ? 'text/turtle' : possibleRDFType
3739
3840 res . header ( 'MS-Author-Via' , 'SPARQL' )
3941
@@ -65,11 +67,14 @@ function handler (req, res, next) {
6567 }
6668
6769 // Handle defaultApp
68- if ( container &&
69- requestedType . indexOf ( 'text/html' ) === 0 &&
70- ldp . defaultApp ) {
71- var address = req . protocol + '/' + req . get ( 'host' ) + req . originalUrl
72- return res . redirect ( 303 , ldp . defaultApp + address )
70+ if ( requestedType . indexOf ( 'text/html' ) === 0 ) {
71+ if ( container && ldp . defaultApp ) {
72+ var address = req . protocol + '/' + req . get ( 'host' ) + req . originalUrl
73+ return res . redirect ( 303 , ldp . defaultApp + address )
74+ }
75+ // Serve (pipe) resource as requested
76+ res . setHeader ( 'Content-Type' , contentType )
77+ return stream . pipe ( res )
7378 }
7479
7580 // If request accepts the content-type we found
@@ -82,7 +87,7 @@ function handler (req, res, next) {
8287 // If it is not in our RDFs we can't even translate,
8388 // Sorry, we can't help
8489 if ( ! possibleRDFType ) {
85- return next ( error ( 406 , 'Cannot server your type' ) )
90+ return next ( error ( 406 , 'Cannot serve requested type: ' + contentType ) )
8691 }
8792
8893 // Translate from the contentType found to the possibleRDFType desired
0 commit comments