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,6 +10,8 @@ module.exports = function setup(mount, vfs, mountOptions) {
|
|||
if (!mountOptions) mountOptions = {};
|
||||
|
||||
var errorHandler = mountOptions.errorHandler || function (req, res, err, code) {
|
||||
// do not show ENOENT errors in browser console
|
||||
if (err.code != "ENOENT")
|
||||
console.error(err.stack || err);
|
||||
if (res.headersSent) {
|
||||
res.end("");
|
||||
|
@ -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 (err.code === "EBADREQUEST") res.statusCode = 400;
|
||||
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 === "EISDIR") res.statusCode = 503;
|
||||
else res.statusCode = 500;
|
||||
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.end(message);
|
||||
};
|
||||
|
@ -40,13 +42,6 @@ module.exports = function setup(mount, vfs, mountOptions) {
|
|||
output.readable = true;
|
||||
var first = true;
|
||||
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) {
|
||||
output.emit("data", "[\n " + JSON.stringify(entry));
|
||||
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);
|
||||
err.code = xhr.status;
|
||||
if (debug)
|
||||
console.error("HTTP error " + this.status + ": " + xhr.responseText);
|
||||
if (debug && xhr.status > 299)
|
||||
console.error("HTTP error " + xhr.status + ": " + xhr.responseText);
|
||||
return done(err, data, res);
|
||||
}
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ define(function(require, exports, module) {
|
|||
port: parsedUrl.port,
|
||||
headers: req.headers
|
||||
}, function(request) {
|
||||
if (request.statusCode >= 400)
|
||||
if (request.statusCode >= 400 || request.headers["content-type"] == "text/x-error")
|
||||
handleError(request);
|
||||
else if (isDir)
|
||||
serveListing(request);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Cloud9 Preview</title>
|
||||
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
|
||||
</head>
|
||||
|
@ -24,7 +25,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<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><%= entry.mime %></td>
|
||||
<td><%= entry.size %></td>
|
||||
|
|
Ładowanie…
Reference in New Issue