微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:需要数据和盐参数[创建新用户]

如何解决错误:需要数据和盐参数[创建新用户]

我是后端初学者,只想为我的主页实现 CRUD 功能,并尝试使用常用的注册模板将用户数据发送到我的数据库。但是,我不断收到以下错误消息:“错误:需要数据和盐参数”。 这是创建新用户代码

controller.js

    require('dotenv').config()
var UserDB = require('../model/model');
var UserDB2 = require('../model/testmodel');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');
const salt = 10;
    exports.create=(req,res)=>{

    //validate
    if(!req.body){
        res.status(400).send({message:'Empty'});
        return;
    }
    //hash password
        const hashedPassword= bcrypt.hashSync(req.body.password,salt)
        //
        //new user
        const user = new UserDB({
            name: req.body.name,email: req.body.email,password: password
        })
    
        //save database
        user
            .save(user)
            .then(data => {
                res.redirect('/signup')
                
            })
            .catch(err =>{
                res.status(500).send({
                    message: err.message || "Mars Attacks !"
                })
            });
            
    }

signup.ejs

<body>
        <div class="Wrapklasse">
            <div class="derKoerper">
                <div class="dieKoerper dieKoerper-step-1 is-showing">
                    <div class="title">Sign Up</div>

                    <form action="/api/users" method="POST" id="add_user">
                        <input type="text" placeholder="Username*" required id="username" />
                        <input type="email" placeholder="E-Mail*" required id="email" />
                        <input type="password" placeholder="Password*" required id="password" />
                        <input type="con-password" placeholder="Confirm Password*" />

                        <div class="text-center">
                            <span id="SignUp"><img src=/img/knight.jpg alt="knight" style="width:35%" class="das_icon"></span>
                            <input type="submit" />
                            
                        </div>
                    </form>
                </div>
            </div>
        </div>
        
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcop+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"></script>
    <script> src="/js/index.js"</script>
    </body>

index.js

  $("#add_user").submit(function(event){
        alert("Success!");
    })

router.js

const express = require('express');
const route = express.Router();
const services = require ('../services/render');
const controller = require ('../controller/controller');
const jwt = require('jsonwebtoken');


//for use
route.get('/',services.homeRoutes);
route.get('/signup',services.signup);
route.get('/forum',services.forum);
route.get('/unterforum',services.unterforum);
route.get('/beitrag',services.beitrag);
route.get('/beitrag_erstellen',services.beitrag_erstellen);

//API
route.post('/api/users',controller.create);
route.get('/api/users',controller.find);
route.put('/api/users/:id',controller.update);
route.delete('/api/users/:id',controller.delete);
module.exports=route;

不幸的是,我不知道可能是什么问题。

解决方法

确保您已定义盐轮(“Salt”变量)并确保 req.body.password 未定义

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。