kopia lustrzana https://github.com/c9/core
Merge pull request +15298 from c9/ide-vfs-silence-enoent
silence enoent errorspull/125/merge
commit
36f53800ac
|
@ -10,7 +10,9 @@ module.exports = function setup(mount, vfs, mountOptions) {
|
||||||
if (!mountOptions) mountOptions = {};
|
if (!mountOptions) mountOptions = {};
|
||||||
|
|
||||||
var errorHandler = mountOptions.errorHandler || function (req, res, err, code) {
|
var errorHandler = mountOptions.errorHandler || function (req, res, err, code) {
|
||||||
console.error(err.stack || err);
|
// do not show ENOENT errors in browser console
|
||||||
|
if (err.code != "ENOENT")
|
||||||
|
console.error(err.stack || err);
|
||||||
if (res.headersSent) {
|
if (res.headersSent) {
|
||||||
res.end("");
|
res.end("");
|
||||||
return;
|
return;
|
||||||
|
@ -20,12 +22,12 @@ module.exports = function setup(mount, vfs, mountOptions) {
|
||||||
else if (typeof err.code == "number" && isValidStatusCode(err.code)) res.statusCode = err.code;
|
else if (typeof err.code == "number" && isValidStatusCode(err.code)) res.statusCode = err.code;
|
||||||
else if (err.code === "EBADREQUEST") res.statusCode = 400;
|
else if (err.code === "EBADREQUEST") res.statusCode = 400;
|
||||||
else if (err.code === "EACCES") res.statusCode = 403;
|
else if (err.code === "EACCES") res.statusCode = 403;
|
||||||
else if (err.code === "ENOENT") res.statusCode = 404;
|
else if (err.code === "ENOENT") res.statusCode = 200; // don't trigger error in browser (rely on Content-Type)
|
||||||
else if (err.code === "ENOTREADY") res.statusCode = 503;
|
else if (err.code === "ENOTREADY") res.statusCode = 503;
|
||||||
else if (err.code === "EISDIR") res.statusCode = 503;
|
else if (err.code === "EISDIR") res.statusCode = 503;
|
||||||
else res.statusCode = 500;
|
else res.statusCode = 500;
|
||||||
var message = (err.message || err.toString()) + "\n";
|
var message = (err.message || err.toString()) + "\n";
|
||||||
res.setHeader("Content-Type", "text/plain");
|
res.setHeader("Content-Type", "text/x-error");
|
||||||
res.setHeader("Content-Length", Buffer.byteLength(message));
|
res.setHeader("Content-Length", Buffer.byteLength(message));
|
||||||
res.end(message);
|
res.end(message);
|
||||||
};
|
};
|
||||||
|
@ -40,13 +42,6 @@ module.exports = function setup(mount, vfs, mountOptions) {
|
||||||
output.readable = true;
|
output.readable = true;
|
||||||
var first = true;
|
var first = true;
|
||||||
input.on("data", function (entry) {
|
input.on("data", function (entry) {
|
||||||
if (path) {
|
|
||||||
entry.href = path + entry.name;
|
|
||||||
var mime = entry.linkStat ? entry.linkStat.mime : entry.mime;
|
|
||||||
if (/(directory|folder)$/.test(mime)) {
|
|
||||||
entry.href += "/";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (first) {
|
if (first) {
|
||||||
output.emit("data", "[\n " + JSON.stringify(entry));
|
output.emit("data", "[\n " + JSON.stringify(entry));
|
||||||
first = false;
|
first = false;
|
||||||
|
|
|
@ -119,11 +119,11 @@ define(function(require, module, exports) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.status > 299) {
|
if (xhr.status > 299 || res.headers["content-type"] == "text/x-error") {
|
||||||
var err = new Error(xhr.responseText);
|
var err = new Error(xhr.responseText);
|
||||||
err.code = xhr.status;
|
err.code = xhr.status;
|
||||||
if (debug)
|
if (debug && xhr.status > 299)
|
||||||
console.error("HTTP error " + this.status + ": " + xhr.responseText);
|
console.error("HTTP error " + xhr.status + ": " + xhr.responseText);
|
||||||
return done(err, data, res);
|
return done(err, data, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -167,7 +167,7 @@ define(function(require, exports, module) {
|
||||||
port: parsedUrl.port,
|
port: parsedUrl.port,
|
||||||
headers: req.headers
|
headers: req.headers
|
||||||
}, function(request) {
|
}, function(request) {
|
||||||
if (request.statusCode >= 400)
|
if (request.statusCode >= 400 || request.headers["content-type"] == "text/x-error")
|
||||||
handleError(request);
|
handleError(request);
|
||||||
else if (isDir)
|
else if (isDir)
|
||||||
serveListing(request);
|
serveListing(request);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
<title>Cloud9 Preview</title>
|
<title>Cloud9 Preview</title>
|
||||||
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
|
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
|
||||||
</head>
|
</head>
|
||||||
|
@ -24,7 +25,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<span class="glyphicon <%= entry.mime == 'inode/directory' ? 'glyphicon-folder-close': 'glyphicon-file'%>"></span>
|
<span class="glyphicon <%= entry.mime == 'inode/directory' ? 'glyphicon-folder-close': 'glyphicon-file'%>"></span>
|
||||||
<a href="<%= escape(entry.name) %>"><%= entry.name %></a>
|
<a href="<%= global.escape(entry.name) %>"><%= entry.name %></a>
|
||||||
</td>
|
</td>
|
||||||
<td><%= entry.mime %></td>
|
<td><%= entry.mime %></td>
|
||||||
<td><%= entry.size %></td>
|
<td><%= entry.size %></td>
|
||||||
|
|
Ładowanie…
Reference in New Issue