如何解决无法使用“ bcryptjs”对密码进行哈希处理->控制台“错误:参数非法:数字,字符串”
我在使用Node / Express Server中的bcryptjs在后端对用户密码进行哈希处理时遇到问题。当我尝试按照官方文档使用它时,收到上述错误。我尝试了不同的方法,没有任何解决方案。请您给我一些想法吗?
这是哈希码
const Usuario = require('../models/Usuario');
const bcryptjs = require('bcryptjs');
usuario = new Usuario(req.body);
//Hashear Password
const salt = await bcryptjs.genSalt(10);
usuario.password = await bcryptjs.hash(password,salt);
//Guardar Usuario
await usuario.save();
//Mensaje Confirmacion
res.json({ msg: 'El usuario fue creado correctamente' });
这是用户模型
const mongoose = require('mongoose');
const UsuariosSchema = mongoose.Schema({
nombre: {
type: String,required: true,trim: true
},email: {
type: String,trim: true,unique: true
},password: {
type: String,registro: {
type: Date,default: Date.now()
}
});
module.exports = mongoose.model('Usuario',UsuariosSchema);
提前谢谢!
解决方法
传递给bcryptjs.hash的变量password
必须是其文档中的字符串类型。
就像上面给定的代码一样,无法识别声明密码的时间和地点及其类型。
我尝试了以下代码,并收到错误消息“非法参数:数字,字符串”
var password = 1234;
const salt = await bcryptjs.genSalt(10);
var pass= await bcryptjs.hash(password,salt);
以下代码有效的地方
var password = "1234";
const salt = await bcryptjs.genSalt(10);
var pass= await bcryptjs.hash(password,salt);
console.log(pass);
您能否检查传递给哈希函数的类型值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。