Node.js错误:%1不是有效的Win32应用程序

您好我下载了一个正在运行的Node.js服务器的项目的副本,并试图运行它,但遇到了以下错误:

错误:

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.<anonymous> (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.<anonymous> (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) 

我如何试图运行我的应用程序:

  1. 我使用FTP从我的服务器下载完整的应用程序文件夹
  2. 我通过webstorm IDE打开了这个项目
  3. 我打开它的terminal,input:npm install
  4. 这是成功。
  5. 然后我input了帆升降机,并得到以下错误。

我是新手,无法find失败的原因。 虽然我可以阅读这个错误,但是它说了一些关于我的UserManager.js的内容,所以我也在这里讨论它。

UserManager.js:

 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); }) }) } } 

这是删除node_modules并再次执行npm install后得到的。 此外现在看起来有些包因为错误而丢失:

 E:\Projects\Smart Automation Web\Zigma_copy\automator>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. / > bcrypt@0.8.3 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt > node-gyp rebuild E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\bcrypt>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.<anonymous>: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 - > sails@0.11.0 preinstall E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails > node ./lib/preinstall_npmcheck.js Sails.js Installation: Checking npm-version successful \ > kerberos@0.0.7 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\kerberos>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild / > bson@0.2.21 install E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\bson > (node-gyp rebuild 2> builderror.log) || (exit 0) E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails-mongo\node_modules\mongodb\node_modules\bson>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild - > 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 > (node-gyp rebuild 2> 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>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_mo dules\node-gyp\bin\node-gyp.js" rebuild - > 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 > (node-gyp rebuild 2> 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>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 

我也有这个错误尝试部署在Windows上。

删除项目文件夹node_modules(..programs \ server \ node_modules)内部署服务器上包含npm-bcrypt的文件夹。

在部署服务器上,运行:

 npm install bcrypt 

它会重新安装bcrypt,以便为你解决这个错误。 另外,你将需要Python> 2.5和<3.0来正确处理光纤。 如果您安装最新版本,它可能无法正常工作。