问题描述
(节点:6548)UnhandledPromiseRejectionWarning:错误:数据和哈希必须为字符串
在Object.compareSync(H:\ Chale \ Angular Projects \ mean-MysqL-login-reg \ node_modules \ bcrypt \ bcrypt.js:170:15)
在H:\ Chale \ Angular Projects \ mean-MysqL-login-reg \ routes \ Users.js:58:19
在processticksAndRejections(内部/流程/task_queues.js:97:5)
(节点:6548)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。该错误是由于在没有catch块的情况下抛出异步函数而引起的,或者是由于拒绝了未经.catch()处理的诺言而引起的。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志--unhandled-rejections=strict
(请参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:1)
(节点:6548)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。
这是我的代码
routes / Users.js
const express = require('express');
const users = express.Router();
const cors = require('cors');
const jwt = require('jsonwebtoken');
const bcrypt = require("bcrypt");
const User = require('../model/User');
users.use(cors());
process.env.SECRET_KEY = 'secret';
//register
users.post('/register',(req,res) => {
const userData = {
first_name : req.body.first_name,last_name : req.body.last_name,email : req.body.email,password: req.body.password
}
User.findOne({
where: {
email: req.body.email
}
})
.then(user => {
if(user){
const hash = bcrypt.hashSync(userData.password,10)
userData.password = hash
User.create(userData)
.then( user => {
let token = jwt.sign(user.dataValues,process.env.SECRET_KEY,{
expiresIn:1440
})
res.json({ token : token })
})
.catch( err=>{
res.send('error 50555' + error)
})
}else{
res.json({ error:'User already exists!' })
}
})
.catch(err=>{
res.send('error:' + err)
})
})
//login- ***Error is somewhere here in login section***
users.post('/login1',res) => {
User.findOne({
where: {
email : req.body.email
}
})
.then(user => {
if(bcrypt.compareSync(" " + req.body.password,user.password)) {
let token = jwt.sign(user.dataValues,{
expiresIn: 1440
})
res.json({ token: token })
}else{
res.send('User does not exist!')
}
})
})
module.exports = users
model / User.js
const Sequelize = require('sequelize')
const db = require('../database/db.js')
module.exports = db.sequelize.define(
'user',{
id: {
type: Sequelize.INTEGER,primaryKey: true,autoIncrement: true
},first_name: {
type: Sequelize.STRING
},last_name: {
type: Sequelize.STRING
},email: {
type: Sequelize.STRING
},password: {
type: Sequelize.STRING
}
},{
timestamps: false
}
)
很高兴,如果有人可以帮助我。 我是bcrypt和hash的新手。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)