para las contraseñas de sal y hashing, utilicé el método Bcrypt pero se muestra, error = new Error ('se requieren argumentos de datos y sal'); creo que mi código tiene el problema por favor necesito ayuda por favor; El sitio web de comercio electrónico es mi proyecto, así que creé un formulario de registro en el panel de usuario
* usuario.js
const userHelpers=require('../helpers/user-helpers') router.get('/signup',(req,res)=>{ res.render('user/signup') }) router.post('/signup',(req,res)=>{ userHelpers.doSignup(req.body).then((response)=>{ console.log(response); })ayudantes-de-usuario.js
var db=require('../config/connection') var collection=require('../config/collections') const bcrypt=require('bcrypt') module.exports={ doSignup:(userData)=>{ return new Promise(async(resolve,reject)=>{ // var salt = await bcrypt.genSalt(10); userData.Password= await bcrypt.hash(userData.Password ,10) db.get().collection(collection.USER_COLLECTION).insertOne(userData).then((data)=>{ resolve(data) }); }); }colección.js
module.exports={ PRODUCT_COLLECTION:'product', USER_COLLECTION:'user' }este es mi código pero el error shoing
error = new Error('data and salt arguments required'); ^ Error: data and salt arguments requiredComo solucionar el problema ..
De acuerdo con el error que recibe, parece que la función bcrypt.hash falla porque es posible que no se haya configurado userData.Password . Asegúrese de obtener el userData.Password correctamente con la solicitud. Si usa express, es posible que no tenga una conversión a JSON, así que agregue un middleware para analizar los datos a JSON, como:
const express = require('express'); const app = express(); app.use(express.json()); app.post('/', function(request, response){ console.log(request.body); // your JSON response.send(request.body); // echo the result back }); app.listen(3000);Eche un vistazo a estas preguntas y respuestas anteriores:
Gracias, tengo la solución. El problema en user-helpers.js .
user-helpers.js
const bcrypt = require('bcrypt') module.exports={ doSignup:(userData)=>{ return new Promise (async(resolve,reject)=>{ userData.password=await bcrypt.hash(userData.password,10) db.get().collection(collection.USER_COLLECTION).insertOne(userData).then((data)=>{ resolve(data) // console.log(userData.password) // console.log(userData.email) }); }); } ```