Zane Kansil 10 лет назад
Родитель
Сommit
5f3a5755fd

+ 35 - 18
frameworks/JavaScript/sailsjs/api/controllers/DatabaseQueryController.js

@@ -28,7 +28,7 @@ var World = sequelize.define('World', {
   // prevents sequelize from assuming the table is called 'Worlds'
   freezeTableName: true,
   timestamps: false
-})
+});
 
 
 var Fortune = sequelize.define('Fortune', {
@@ -36,10 +36,10 @@ var Fortune = sequelize.define('Fortune', {
   message: Sequelize.STRING
 },
 {
-  // prevents sequelize from assuming the table is called 'Worlds'
+  // prevents sequelize from assuming the table is called 'Fortunes'
   freezeTableName: true,
   timestamps: false
-})
+});
 
 
 var randomTFBnumber = function() {
@@ -49,21 +49,38 @@ var randomTFBnumber = function() {
 
 var worldQuery = function(callback) {
   World.findOne({
-    where: { id: randomTFBnumber() }
-  }).complete(callback);
+    where: { id: randomTFBnumber()}
+  }).then(function (result) {
+    if (result) {
+      callback(null, result.get())
+    } else {
+      callback("Error in World query")
+    }
+  });
+}
+
+// arr is single-element array containing number of updated rows
+// [ 1 ] or [ 0 ]
+var oneOrMoreUpdates = function (arr) {
+  return arr[0] > 0;
 }
 
 
 var worldUpdate = function(world, callback) {
   World.update({
-      randomNumber: world.randomNumber
-    },
-    {
-      where: {
-        id: world.id
-      }
+    randomNumber: world.randomNumber
+  },
+  {
+    where: {
+      id: world.id
     }
-  ).complete(callback);
+  }).then(function (changed) {
+    if (oneOrMoreUpdates(changed)) {
+      callback(null, world);
+    } else {
+      callback("Error in World update");
+    }
+  });
 }
 
 
@@ -72,10 +89,10 @@ module.exports = {
   /**
    * Test 2: Single Database Query
    */
-  single: function (req, res) {
+  single: function(req, res) {
     World.findOne({
       where: { id: randomTFBnumber() }
-    }).then(function(results) {
+    }).then(function (results) {
       return res.json(results.get());
     })
   },
@@ -84,7 +101,7 @@ module.exports = {
   /**
    * Test 3: Multiple Database Query
    */
-  multiple: function (req, res) {
+  multiple: function(req, res) {
     var queries = req.param('queries');
     var toRun = [];
 
@@ -94,7 +111,7 @@ module.exports = {
       toRun.push(worldQuery);
     }
 
-    async.parallel(toRun, function(err, results) {
+    async.parallel(toRun, function (err, results) {
       if (!err) {
         res.json(results);
       } else {
@@ -137,9 +154,9 @@ module.exports = {
       });
     }
 
-    async.map(worlds, worldUpdate, function(err, results) {
+    async.map(worlds, worldUpdate, function (err, results) {
       if (!err) {
-        res.json(worlds);
+        res.json(results);
       } else {
         res.badRequest('Unexpected failure to update records.');
       }

+ 2 - 2
frameworks/JavaScript/sailsjs/package.json

@@ -19,13 +19,13 @@
     "grunt-contrib-watch": "~0.5.3",
     "grunt-sails-linker": "~0.9.5",
     "grunt-sync": "~0.0.4",
-    "handlebars": "^3.0.2",
+    "handlebars": "^3.0.3",
     "include-all": "~0.1.3",
     "mysql": "^2.6.2",
     "rc": "~0.5.0",
     "sails": "~0.11.0",
     "sails-disk": "~0.10.0",
-    "sequelize": "^2.0.6"
+    "sequelize": "^3.0.0"
   },
   "scripts": {
     "start": "node app.js",

+ 4 - 3
frameworks/JavaScript/sailsjs/setup.sh

@@ -1,5 +1,3 @@
-## put sed here later
-
 export NVM_HOME=${IROOT}/nvm
 
 # Used to avoid nvm's return 2 error.
@@ -10,8 +8,11 @@ nvm use 0.12.2
 
 # update npm before app init
 npm install -g npm
+
+# let us run sails directly
 npm install -g sails
 
-# run app
+# reset cache & run app
+npm cache clean
 npm install
 sails lift --port 8080 &