Node.js的错误:%1不是有效的Win32应用程序
问题描述:
您好我从运行的Node.js服务器下载我的项目的副本,并尝试运行,但遇到了以下错误:Node.js的错误:%1不是有效的Win32应用程序
错误:
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)
我如何试图运行我的应用程序:
- 我使用FTP
- 我通过webst开盘项目下载完整的app文件夹从我的服务器orm IDE
- 我打开它的终端并输入:npm install
- 它是成功的。
- 然后我输入帆升降机,并得到以下错误。
我是新手,无法找到失败的原因。虽然我可以阅读这个错误,但它说了一些关于我的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重新安装后得到。另外现在看起来一些包丢失了,因为错误的:
E:\Projects\Smart Automation Web\Zigma_copy\automator>npm install
npm WARN deprecated [email protected]: 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 [email protected]: DEPRECATED. See readme: https://github.com/gruntjs/grunt-lib-contrib
npm WARN deprecated [email protected]: Security update: Versions below 3.0.0 are deprecated.
/
> [email protected] 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
-
> [email protected] preinstall E:\Projects\Smart Automation Web\Zigma_copy\automator\node_modules\sails
> node ./lib/preinstall_npmcheck.js
Sails.js Installation: Checking npm-version successful
\
> [email protected] 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
/
> [email protected] 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
-
> [email protected] 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
-
> [email protected] 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! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] 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才能正确处理光纤。如果您安装最新版本,它可能无法正常工作。
如果您下载了完整的应用程序文件夹,这意味着您还下载了'node_modules'文件夹。因此,'npm install'会报告成功(当然),但已安装的模块,特别是原生模块,已经针对目标机器进行了编译。删除该文件夹并在主机上再次安装依赖关系。 –
@RobertRossmann:所以你的意思是,我应该删除我的这个应用程序的node_modules文件夹并在终端中再次运行npm install? – Rahul
是的。我总是建议在应用程序移动到另一个操作系统时重新创建'node_modules'。 –