[Groonga-commit] groonga/gcs-console [master] Better error handling #7 #5

Back to archive index

Yoji SHIDARA null+****@clear*****
Thu Oct 18 15:13:29 JST 2012


Yoji SHIDARA	2012-10-18 15:13:29 +0900 (Thu, 18 Oct 2012)

  New Revision: 09f5d40e05e81874c6e4209d31025b2c13f3ec57
  https://github.com/groonga/gcs-console/commit/09f5d40e05e81874c6e4209d31025b2c13f3ec57

  Log:
    Better error handling #7 #5

  Modified files:
    lib/cloudsearch.js
    routes/index.js
    views/domain-create.jade
    views/error.jade
    views/layout.jade

  Modified: lib/cloudsearch.js (+1 -1)
===================================================================
--- lib/cloudsearch.js    2012-10-18 15:12:47 +0900 (0958dbe)
+++ lib/cloudsearch.js    2012-10-18 15:13:29 +0900 (f8236bb)
@@ -27,7 +27,7 @@ var cloudsearch = function(host, port, protocol) {
     cs.DescribeDomains(function(error, data) {
       if (error) {
         res.status(500);
-        res.render('error', {message: error.Message});
+        res.render('error', {error: new Error(error.Message)});
         return;
       }
 

  Modified: routes/index.js (+17 -9)
===================================================================
--- routes/index.js    2012-10-18 15:12:47 +0900 (f9a5548)
+++ routes/index.js    2012-10-18 15:13:29 +0900 (8ec56a3)
@@ -18,7 +18,7 @@ function withDomain(req, res, callback) {
   }, function(error, data) {
     if (error) {
       res.status(500);
-      res.render('error', {message: error.Message});
+      res.render('error', {error: new Error(error.Message)});
       return;
     }
     var indexFields = convertToArray(data.Body.DescribeIndexFieldsResponse.DescribeIndexFieldsResult.IndexFields.member);
@@ -134,7 +134,8 @@ exports.domainSearch = function(req, res) {
 exports.domainCreate = function(req, res) {
   res.render('domain-create', {
     action: "domain_create",
-    domain: null
+    domain: null,
+    creatingDomainName: null
   });
 };
 
@@ -146,16 +147,23 @@ exports.domainCreatePost = function(req, res) {
     if (error) {
       if (error.Message) {
         res.status(500);
-        res.render('error', {message: error.Message});
+        res.render('error', {error: new Error(error.Message)});
         return;
       }
 
-      // TODO redirect back domainCreate if it is a kind of validation error
-      // TODO render error in a more pretty way
-      // TODO in some cases, the error should be 400 rather than 500
-      res.status(500);
-      var message = JSON.stringify(error.Body.Response.Errors);
-      res.render('error', {message: message});
+      var errorToRender = null;
+      try {
+        errorToRender = new Error(error.Body.Response.Errors.Error.Message)
+      } catch(e) {
+        errorToRender = e;
+      };
+
+      res.render('domain-create', {
+        action: "domain_create",
+        domain: null,
+        creatingDomainName: domainName,
+        error: errorToRender
+      });
       return;
     }
 

  Modified: views/domain-create.jade (+1 -1)
===================================================================
--- views/domain-create.jade    2012-10-18 15:12:47 +0900 (52f0f34)
+++ views/domain-create.jade    2012-10-18 15:13:29 +0900 (0c9efd7)
@@ -3,5 +3,5 @@ extends application
 block content
   h1 Creating a new domain
   form(method="POST").form-inline
-    input(type="text", name="domain_name")
+    input(type="text", name="domain_name", value=creatingDomainName)
     input(type="submit", value="Create").btn

  Modified: views/error.jade (+0 -5)
===================================================================
--- views/error.jade    2012-10-18 15:12:47 +0900 (5c610e7)
+++ views/error.jade    2012-10-18 15:13:29 +0900 (dd9a73a)
@@ -1,6 +1 @@
 extends layout
-
-block application
-  .alert.alert-error
-    strong Error. 
-    span= message

  Modified: views/layout.jade (+4 -0)
===================================================================
--- views/layout.jade    2012-10-18 15:12:47 +0900 (37ab47a)
+++ views/layout.jade    2012-10-18 15:13:29 +0900 (22f2583)
@@ -13,4 +13,8 @@ html
           a.brand(href='/') Groonga CloudSearch Console
 
     .container
+      if (typeof(error) != 'undefined')
+        .alert.alert-error
+          strong Error. 
+          span= error.message
       block application
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index