如何使用 npm 安装 bcrypt?
Posted
技术标签:
【中文标题】如何使用 npm 安装 bcrypt?【英文标题】:How do I install bcrypt using npm? 【发布时间】:2021-08-24 07:08:58 【问题描述】:我有 nodejs 版本 10.19.0、ubuntu 20.04.2,并为 javascript 使用 webstorm ide。我尝试安装 bcrypt 和 sha256,但两个库都不起作用。 例如,安装 bcrypt 后,我的 javascript 代码中的前 2 行是:
const bcrypt = require('bcrypt');
alert('hello');
只有当我注释掉第一行时才会弹出警报功能。我对 sha256 也有同样的问题。
我尝试安装、卸载和重新安装 bcrypt 和 bcryptjs(甚至是应该与我的节点版本匹配的 bcrypt 版本)。为什么我似乎无法正确安装这些库?谢谢。
PS。我试过'npm install bcrypt'
$ npm list -g
(node:40710) ExperimentalWarning: The fs.promises API is
experimental
/home/philip/.nvm/versions/node/v10.16.3/lib
├── bcrypt@5.0.1
├── create-react-app@3.3.1
├── node-gyp@8.1.0
├── npm@7.16.0
└── truffle@5.1.39
【问题讨论】:
` const bcrypt = require('bcrypt');警报('你好'); ` 此代码是否存在于您的 html 文件中?因为警报在 HTML 文件中用作窗口警报,而您使用 bcrypt 的方式是后端语法,如 app.js 不是直接的。 在正文的末尾。我应该尝试使用 console.log 吗? 如果你使用过npm install bcrypt
,那么你需要在后端使用bcrypt,查看这个例子loginradius.com/blog/async/…或者参考他们的npm网站npmjs.com/package/bcrypt
【参考方案1】:
首先您应该正确了解如何在您的项目中安装 bcrypt,您可以查看此链接 https://www.npmjs.com/package/bcrypt 进行详细安装,您还可以从中获得进一步的帮助。但是现在的问题是您没有在 js 文件中正确导入 bcrypt。您应该像这样导入它,它会正常工作。
const bcrypt = require('bcryptjs')
【讨论】:
OP 使用npm iinstall bcrypt
,如果你引用 bcrypt npm 包,这不是正确的方法。
我试过 'npm install -g browserify' 但也没有用。我在查看 chrome 的控制台日志后发现了这个错误消息: Uncaught ReferenceError: require is not defined at todo.js:1
@PhilipStephens 要求不适用于 html 文件,它适用于后端节点 js 文件。请参考我在评论中发布的示例。
@Jatin 我试过“ import bcrypt from 'bcryptj; ”和“ import bcrypt from 'bcryptjs'; ”但它们都不起作用。是否有一个简短的 sn-p 说明如何在 javascript 中使用 bcrypt,因为我想在 Web 应用程序而不是后端使用它?
我在这里测试了“bcryptjs”:runkit.com/embed/lsr3gv9wpxj8。它可以工作,除了我无法让比较和验证函数返回值。全局变量不起作用,返回值也不起作用,但是如果我 console.log 在哈希函数的中间它起作用。最初的 cmets 告诉我将结果存储在数据库中,但我没有使用数据库。【参考方案2】:
https://browserify.org/ 是我尝试过的唯一有效的解决方案。谢谢大家的帮助。
编辑:我不再需要使用 browserify 来在我的 javascript 应用程序中使用 bcrypt!
以下是我为使其正常工作所做的更改:
在 todoApp.html...
<head>
<link rel="stylesheet" type="text/css" href="css/todo.css">
<meta charset="UTF-8">
<title>Todo App</title>
<script src="https://cdn.jsdelivr.net/npm/bcryptjs@2.4.3/dist/bcrypt.js"></script>
</head>
...
<script src="scripts/todo.js"></script>
</body>
在 todo.js 中
let bcrypt = dcodeIO.bcrypt;
const saltRounds = 12;
...
【讨论】:
也可以试试这个基于 bcrypt 但非常易于使用的库:npmjs.com/package/bcrypt-inzi以上是关于如何使用 npm 安装 bcrypt?的主要内容,如果未能解决你的问题,请参考以下文章