Skip to content
This repository was archived by the owner on Apr 6, 2021. It is now read-only.

Commit 89b1253

Browse files
author
Fabian Jakobs
committed
improve error handling
1 parent 71fd4a1 commit 89b1253

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

restful.js

+12-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ module.exports = function setup(mount, vfs, mountOptions) {
1111
console.error(err.stack || err);
1212
if (code) res.statusCode = code;
1313
else if (err.code === "EBADREQUEST") res.statusCode = 400;
14-
else if (err.code === "EACCESS") res.statusCode = 403;
14+
else if (err.code === "EACCES") res.statusCode = 403;
1515
else if (err.code === "ENOENT") res.statusCode = 404;
1616
else if (err.code === "ENOTREADY") res.statusCode = 503;
17+
else if (err.code === "EISDIR") res.statusCode = 503;
1718
else res.statusCode = 500;
1819
var message = (err.stack || err) + "\n";
1920
res.setHeader("Content-Type", "text/plain");
@@ -133,7 +134,13 @@ module.exports = function setup(mount, vfs, mountOptions) {
133134
if (meta.partialContent) res.statusCode = 206;
134135

135136
if (meta.hasOwnProperty('stream') || options.head) {
136-
if (meta.hasOwnProperty('mime')) res.setHeader("Content-Type", meta.mime);
137+
if (meta.hasOwnProperty('mime')) {
138+
if (mountOptions.noMime) {
139+
res.setHeader("Content-Type", "application/octet-stream");
140+
} else {
141+
res.setHeader("Content-Type", meta.mime);
142+
}
143+
}
137144
if (meta.hasOwnProperty("size")) {
138145
res.setHeader("Content-Length", meta.size);
139146
if (meta.hasOwnProperty("partialContent")) {
@@ -147,7 +154,9 @@ module.exports = function setup(mount, vfs, mountOptions) {
147154
if (meta.hasOwnProperty('stream')) {
148155
meta.stream.on("error", abort);
149156
if (options.encoding === null) {
150-
var base = (req.socket.encrypted ? "https://" : "http://") + req.headers.host + pathJoin(mount, path);
157+
var base =
158+
req.restBase ||
159+
(req.socket.encrypted ? "https://" : "http://") + req.headers.host + pathJoin(mount, path);
151160
jsonEncoder(meta.stream, base).pipe(res);
152161
} else {
153162
meta.stream.pipe(res);

0 commit comments

Comments
 (0)