0

私はreactとexpress jsでサインアップフォームを作成しています。errorすべて問題ありませんが、サーバーからフラッシュとメッセージを返したいのですsuccessが、正確で簡単な方法がわかりません。次に、res.redirect('url')404 を指定します。ヘルプが必要です (コードのコメント セクション)
1)C1 (フラッシュ メッセージのレンダリング)
2)C2 (エラーのリダイレクト)
3)C3 (フラッシュ メッセージの送信)
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