title: Node.js error : %1 is not a valid Win32 application
body: <p>Hi I downloaded a copy of my project from a running Node.js server and tried running it but encountered the following error : </p>
  
  <p>Error :</p>
  
  <pre><code>E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt\node_modules\bindings\bindings.js:79
          throw e
                ^
  Error: %1 is not a valid Win32 application.
  E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt\build\Release\bcrypt_lib.node
      at Error (native)
      at Module.load (module.js:355:32)
      at Function.Module._load (module.js:310:12)
      at Module.require (module.js:365:17)
      at require (module.js:384:17)
      at bindings (E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt\node_modules\bindings\bindings.js:74:15)
      at Object.&lt;anonymous&gt; (E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt\bcrypt.js:3:35)
      at Module._compile (module.js:460:26)
      at Object.Module._extensions..js (module.js:478:10)
      at Module.load (module.js:355:32)
      at Function.Module._load (module.js:310:12)
      at Module.require (module.js:365:17)
      at require (module.js:384:17)
      at Object.&lt;anonymous&gt; (E:\Projects\Smart Automation Web\Zigma_copy\automator\api\services\UserManager.js:2:14)
      at Module._compile (module.js:460:26)
      at Object.Module._extensions..js (module.js:478:10)
  </code></pre>
  
  <p>How I tried to run my application :</p>
  
  <ol>
  <li>I downloaded the complete app folder from my server using FTP</li>
  <li>I opened the project through webstorm IDE</li>
  <li>I opened its terminal and typed : npm install </li>
  <li>It was success .</li>
  <li>Then I typed sails lift and got the following error .</li>
  </ol>
  
  <p>I am a novice and not able to find why it fails . Though I can read the error and it said something about my UserManager.js , so I am atatching that here too .</p>
  
  <p>UserManager.js :</p>
  
  <pre><code>var jwt = require('jsonwebtoken')
  var bcrypt = require('bcrypt');
  
  var jwtSecret = "werisdkf120sdkfr84rwerf";
  var ISSUER = "home-automator.com";
  var EXPIRY_TIME = 120*500;
  
  function genToken(user) {
    var token = jwt.sign({id: user.id}, jwtSecret, {issuer: ISSUER, expiresInMinutes: EXPIRY_TIME});
    return token;
  }
  
  module.exports = {
    hashPassword: function (plainTxtPassword, salt, next) {
      salt = salt || bcrypt.genSaltSync(6);
      bcrypt.hash(plainTxtPassword, salt, function (err, hash) {
        if (err) {
          return next({err: {message: "Something went wrong. Please try again later."}});
        }
        next(null, hash, salt);
      })
    },
  
    createUser: function (newUser, next) {
      User.findOneByEmail(newUser.email, function (err, user) {
        if (err) {
          return next({err: {message: "Failed to create user. Please try again later."}});
        }
  
        if (user) {
          return next({err: {message: "Email already registered. Please try a different email address."}})
        }
  
        User.create(newUser, function (err, user) {
          if (err) {
            return next({err: err});
          }
  
          next(null, user);
        })
      })
    },
  
    generateAuthToken: function (user) {
      return genToken(user);
    },
  
    generateAuthTokenFromPassword: function (username, password, next) {
      User.findOne({email: username}, function (err, user) {
        if (err) {
          return next({err: {message: "Something went wrong, please try again later."}});
        }
  
        if (!user) {
          return next({err: {message: "Invalid email address and/or password. Please enter valid login credentials and try again."}})
        }
  
        bcrypt.compare(password, user.encrypted_password, function (err, valid) {
          if (err) {
            return next({err: {message: "Something went wrong, please try again later."}});
          }
          if (!valid) {
            return next({err: {message: "Invalid email address and/or password. Please try again with valid login credentials."}});
          }
          else {
            next(null, user, genToken(user));
          }
        })
      })
    },
  
    getUserFromAuthToken: function (token, next) {
      jwt.verify(token, jwtSecret, {issuer: ISSUER}, function (err, user) {
        if (err) {
          return next(err);
        }
  
        User.findOne({id: user.id}, function (err, userData) {
          if (err) next(err);
          return next(null, userData);
        })
      })
    }
  }
  </code></pre>
  
  <p>This is what I got after deleting node_modules and doing npm install again . Also now looks some packages are missing because of errors :</p>
  
  <pre><code>E:\Projects\Smart Automation Web\Zigma_copy\automator&gt;npm install
  npm WARN deprecated jsonwebtoken@4.2.2: Critical vulnerability fix in v5.0.0. See https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
  npm WARN deprecated grunt-lib-contrib@0.7.1: DEPRECATED. See readme: https://github.com/gruntjs/grunt-lib-contrib
  npm WARN deprecated jws@2.0.0: Security update: Versions below 3.0.0 are deprecated.
  /
  
  
  &gt; bcrypt@0.8.3 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt
  &gt; node-gyp rebuild
  
  
  E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt&gt;node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
  gyp ERR! configure error
  gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
  gyp ERR! stack     at failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:103:14)
  gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:64:11
  gyp ERR! stack     at FSReqWrap.oncomplete (evalmachine.&lt;anonymous&gt;:99:15)
  gyp ERR! System Windows_NT 6.3.9600
  gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
  gyp ERR! cwd E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt
  gyp ERR! node -v v0.12.0
  gyp ERR! node-gyp -v v1.0.2
  ERR! not ok
  -
  
  
  &gt; sails@0.11.0 preinstall E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails
  &gt; node ./lib/preinstall_npmcheck.js
  
  Sails.js Installation: Checking npm-version successful
  \
  
  
  &gt; kerberos@0.0.7 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\kerberos
  &gt; (node-gyp rebuild 2&gt; builderror.log) || (exit 0)
  
  
  E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\kerberos&gt;node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
  /
  
  
  &gt; bson@0.2.21 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\bson
  &gt; (node-gyp rebuild 2&gt; builderror.log) || (exit 0)
  
  
  E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\bson&gt;node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
  -
  
  
  &gt; ws@0.5.0 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails\node_modules\sails-hook-sockets\node_modules\socket.io\node_modules\engine.io\node_modules\ws
  &gt; (node-gyp rebuild 2&gt; builderror.log) || (exit 0)
  
  \
  E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails\node_modules\sails-hook-sockets\node_modules\socket.io\node_modules\engine.io\node_modules\ws&gt;node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_mo
  dules\node-gyp\bin\node-gyp.js" rebuild
  -
  &gt; ws@0.4.31 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails\node_modules\sails-hook-sockets\node_modules\socket.io-client\node_modules\engine.io-client\node_modules\ws
  &gt; (node-gyp rebuild 2&gt; builderror.log) || (exit 0)
  
  
  E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails\node_modules\sails-hook-sockets\node_modules\socket.io-client\node_modules\engine.io-client\node_modules\ws&gt;node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\
  \..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
  npm ERR! Windows_NT 6.3.9600
  npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
  npm ERR! node v0.12.0
  npm ERR! npm  v2.5.1
  npm ERR! code ELIFECYCLE
  
  npm ERR! bcrypt@0.8.3 install: `node-gyp rebuild`
  npm ERR! Exit status 1
  npm ERR!
  npm ERR! Failed at the bcrypt@0.8.3 install script 'node-gyp rebuild'.
  npm ERR! This is most likely a problem with the bcrypt package,
  npm ERR! not with npm itself.
  npm ERR! Tell the author that this fails on your system:
  npm ERR!     node-gyp rebuild
  npm ERR! You can get their info via:
  npm ERR!     npm owner ls bcrypt
  npm ERR! There is likely additional logging output above.
  
  npm ERR! Please include the following file with any support request:
  npm ERR!     E:\Projects\Smart Automation Web\Zigma_copy\automator\npm-debug.log
  </code></pre>