0

我正在做出反应和表达js的注册表单。一切都很好,但我想从服务器返回闪存errorsuccess消息,但我不确定这样做的确切和简单方法是什么。其次,res.redirect('url')给出 404。我需要帮助如下(代码的注释部分)
1)C1(呈现 Flash 消息)
2)C2(重定向错误)
3)C3(发送 Flash 消息)
Register.js

const handleSubmit = async e => {
        e.preventDefault();
        const options = {
          method: "POST",
          body: JSON.stringify({name,email,password}),
          headers: {
            "Content-Type": "application/json"
          }
        };
        const res= await axios.post("/register", options);
        return res;
      };
return (
    <>
    <div className='wrapper'>
        <div className='form-wrapper'>
    <h5>{FlashMessage} </h5>                      //**C1**
 //I need a error flash message here sent from express route  
    <Form ref={form} onSubmit={(e)=>{handleSubmit(e)}}>
                    {...}
            <Button type="submit" className='button bg-success' >Submit</Button>
            
    </Form>  
     </div>
    </div> 
        
</>) 

服务器.js

app.post('/register', async (req,res)=>{
     let {name,email,password} =JSON.parse(req.body.body)
    if(password.length >=8 )
         {
             let hashpassword = await bcrypt.hash(password,10);
            pool.query(`SELECT * FROM USERSDATA WHERE EMAIL= $1 `, [email],
                 (err,results) =>
                     {
                         if(err){
                             throw err;}
                         if(results.rows.length == 0)
                         {
                             console.log("inside insertion if-statement");
                             pool.query(`INSERT INTO USERSDATA (NAME,EMAIL,PASSWORD) VALUES ($1,$2,$3) RETURNING id`,[name,email,hashpassword],
                             (err,results) => 
                             {
                                 console.log("JUST AFTER QUERYING DB");
                                 if(err)
                                 {
                                     throw error;
                                 }
                             res.redirect("http://localhost:3000/login")  //C2 
//This redirection giving 404 code
                             });
                         }
                         else{
                             req.flash("error","User Registration failed");  //C3
// Need to send above flash error message
                             res.locals.message= req.flash()
                             res.redirect("http://localhost:3000/register2") 
//This redirection is giving 404 code}
                      }
                     );
         }})
4

0 回答 0