Nodejs Bcrypt + Heroku部署失败

时间:2018-09-12 04:49:54

标签: node.js heroku bcrypt

当我尝试在heroku中进行部署时遇到问题。有趣的是,这是三天前的工作。另外,在本地计算机上也可以正常工作。

Bcrypt的版本为3.0.0,节点为8.12.0

我真的需要部署此服务器。您能告诉我如何解决此错误吗?我尝试了一些找到的解决方案,但没有任何效果。我什至尝试卸载并再次安装Bcrypt,但无法正常工作。

感谢您的帮助。

这是日志。

mysql Ver 15.1 Distrib 10.1.36-MariaDB, for Linux (x86_64) using readline 5.1

2 个答案:

答案 0 :(得分:5)

我也发生了同样的事情。

  

未在package.json中指定的节点版本

尝试执行heroku suggest,在package.json上定义要使用的节点版本。

获取用于开发的版本:

node --version

然后将其放在package.json上:

{ "name": "myapp", 
  "description": "a really cool app",  
  "version": "1.0.0", 
  "engines": { 
      "node": "8.9.4" 
   }
}

答案 1 :(得分:1)

好吧,我尝试了@GMachado的解决方案,但它对我不起作用。

我知道发生这种情况是因为bcrypt需要本机编译器。我使用python在本地计算机上编译bcrypt,但是在heroku上进行部署时,我不愿意承受这种压力

作为一个快速解决方案,我unistalled bcrypt然后installed bcryptjsbcryptjsbcrypt的纯JavaScript版本。只需将其视为bcrypt的简写即可。尽管bcrypt要求本机编译器进行编译,但bcryptjs则不需要。 bcryptbcryptjs快1.3倍。那就是主要区别。

首先通过键入以下命令来卸载bcrypt:

npm uninstall --save bcrypt

然后通过键入命令来安装bcryptjs

npm install --save bcryptjs

然后,导航到在应用程序上导入bcrypt的位置并将其更改为

require("bcryptjs")

应用程序的其余部分应保持不变。

回去部署在heroku上,就可以了。