Reactjs 此电子邮件已存在

Reactjs 此电子邮件已存在,reactjs,mongodb,Reactjs,Mongodb,我正在制作一个React应用程序,将用户名、密码和电子邮件提交到mongo数据库 现在,我正试图弄清楚如何在React中检查用户或电子邮件是否已经存在。这意味着我可以显示一个错误框,告诉用户选择其他内容作为用户名 当我使用Node.js和handlebar时,我确实知道如何做到这一点。我知道如何使用mongoose的Find()方法检查我的数据库。 但是现在我不知道该怎么想,因为我正在使用React。 当我检查用户是否已经存在于后端并且它显示它确实存在时,我如何通知我的前端(反应)它确实存在 当

我正在制作一个React应用程序,将用户名、密码和电子邮件提交到mongo数据库

现在,我正试图弄清楚如何在React中检查用户或电子邮件是否已经存在。这意味着我可以显示一个错误框,告诉用户选择其他内容作为用户名

当我使用Node.js和handlebar时,我确实知道如何做到这一点。我知道如何使用mongoose的Find()方法检查我的数据库。 但是现在我不知道该怎么想,因为我正在使用React。 当我检查用户是否已经存在于后端并且它显示它确实存在时,我如何通知我的前端(反应)它确实存在

当我使用node.js和handlebar时,我使用flash消息,它工作得很好。 我想我的问题可以概括为,我应该如何让我的反应前端与我的节点/Express后端合作,共享关于数据库中已经存在的用户名的信息

我没有代码可以展示,这更多的是询问关于我应该使用什么工具或方法的建议。我就是搞不懂


提前谢谢你

如果出现错误,您可以使用400状态进行响应,然后以这种方式将错误消息发送到前端。e、 g.返回res.status(400).json(错误)。

您需要让后端通知前端电子邮件是否已被使用,因为没有后端,前端无法知道

基本上,当用户尝试注册时,您应该将注册请求从前端发送到后端,而不必担心重复的电子邮件。来自服务器的响应应该指示注册是否成功,如果不成功,为什么不成功

例如,React代码中的注册组件可能如下所示:

类注册组件扩展React.Component{
建造师(道具){
超级(道具);
此.state={
电邮:“,
密码:“”,
错误:“”,
}
}
handleSubmit=异步事件=>{
event.preventDefault();
const{email,password}=this.state;
const response=wait sendRegisterRequest(电子邮件、密码);
const responseJson=wait response.json();
如果(response.status!==200){
this.setState({error:reponseJson.error});
}否则{
//办理成功注册
}
}
render(){
const{error}=this.state;
返回(
{错误}
{/*表单的其余部分*/}
)
}
}
其中
sendRegisterRequest
是处理向服务器发送注册请求的模块

请注意,此前端逻辑期望服务器在成功注册时以状态200响应,如果出现错误,则以其他状态(状态400)响应。此外,如果出现错误,服务器应使用如下有效负载主体进行响应:
{“error”:“该电子邮件已在使用”}


您提到您知道如何检查服务器上现有的电子邮件地址,因此在创建新帐户之前只需以这种方式进行检查,如果电子邮件地址已在使用,请发送状态为400的错误负载。

您是否使用Redux?不,我没有使用Redux。非常感谢您花时间回答此问题。