在backeng - NODE.JS中比较密码时出现错误



我正在尝试比较登录认证的密码,不成功。

我使用bcryptjs,安装在服务器文件夹..我一直得到这个错误:

Parser.js:437
throw err; // Rethrow non-MySQL errors
^
TypeError: bcrypt.compare is not a function

同样的错误bcryptSync,和genSalt..(试图确定……)bcrypt。hashSync正在工作。

有什么想法?

下面是我的代码(我排除了一些不相关的部分):
const express = require("express");
const mysql = require("mysql");
const cors = require("cors");
const bcrypt = ('bcryptjs');
const app = express();
app.use(cors());
app.use(express.json());
// Create connection
const db = mysql.createConnection({
user: "root",
host: "localhost",
password: "1234",
database: "dashboardDB",
});
// Connect
db.connect((err) => {
if (err) {
console.log(err + " Connection error");
} else {
console.log("MySql Connected...");
}
});
app.post("/login", (req, response) => {
const email = req.body.email;
const password = req.body.password;
if (email && password) {
db.query(
"SELECT * FROM users WHERE email = ? LIMIT 1",
[email],
(err, result) => {
console.log(result);
if (err) {
console.log(err);
} else if (result.length > 0) {
bcrypt.compare(password, hash, (err, res) => {
console.log(err, res);
});

就像@Joe写的:

const bcrypt = ('bcryptjs');应该是const bcrypt = require('bcryptjs');

最新更新