Node.js 如何处理反应中的反应
我是新来的。目前我正在创建一个登录屏幕。我有以下代码:Node.js 如何处理反应中的反应,node.js,reactjs,Node.js,Reactjs,我是新来的。目前我正在创建一个登录屏幕。我有以下代码: function login(e) { fetch('/login') .then(response => { if(response === 'fail'){ return(SignIn()); }else{ return(Ide()); } }) .then((proposals) =>
function login(e) {
fetch('/login')
.then(response => {
if(response === 'fail'){
return(SignIn());
}else{
return(Ide());
}
})
.then((proposals) => {
console.log(proposals);
this.setState({ proposals });
});
}
export default function SignIn() {
const classes = useStyles();
return (
<Container component="main" maxWidth="xs">
<CssBaseline />
<div className={classes.paper}>
<Avatar className={classes.avatar}>
</Avatar>
<Typography component="h1" variant="h5">
Sign in
</Typography>
<form className={classes.form} noValidate>
<TextField
variant="outlined"
margin="normal"
required
fullWidth
id="email"
label="Email Address"
name="email"
autoComplete="email"
autoFocus
/>
<TextField
variant="outlined"
margin="normal"
required
fullWidth
name="password"
label="Password"
type="password"
id="password"
autoComplete="current-password"
/>
<Button
type="submit"
fullWidth
onClick={login}
variant="contained"
color="primary"
className={classes.submit}
>
Sign In
</Button>
</form>
</div>
</Container>
);
但当我按下提交按钮时,电子邮件和密码都会被记录为未定义。如何在客户端和服务器之间使用react发送信息?提前感谢无论何时使用fetch将信息发送到上面的“/login”之类的端点,都需要将req.body添加为fetch调用的一部分。要做到这一点,人们通常会这样做
fetch('/login', {
body: (whatever you send in the form of one object)
});
然后,作为第二个参数传入的body可以用作console.log代码中的req.body
但不建议这样做,因为GET命令通常不会将主体作为第二个参数传递。通常,POST和PUT命令具有主体,以便添加和更改数据。我的建议是:
fetch('/login/' + email + '/' + password);
这允许电子邮件和用户名对象成为中url的一部分,以便后端使用。这是一种人们在不传递身体的情况下获取命令的方式。使用新格式时,应将后端更改为:
app.get('/login/:email/:password', (req, res) => {
const email = req.params.email;
const password = req.params.password;
console.log(email, password);
url中的:email和:password允许您使用req.params,然后直接调用每个标识符作为最后一个值
顺便说一句,如果您觉得上面的fetch调用使用+命令看起来很混乱,您可以改为执行以下操作:
fetch(`/login/${email}/${password}`);
通过将值直接添加到字符串中,可以更容易地读取代码。(注意,他们使用“1号键旁边的键”或)
另外,如果您想了解更多关于fetch命令的信息,我建议您从开始。当您需要了解JS或其他web语言时,此网站非常有用。等等什么?您甚至做出了响应吗?这只是一个
if
语句吗?我没有,当我点击submit时,它会为'/login'发送一个fetch请求,然后运行t他写了下面的代码,只是控制台记录了“undefined undefined”(未定义的未定义)Let We.我反对投票,因为粗鲁的行为是不可接受的,人们试图在这里免费提供帮助。
fetch(`/login/${email}/${password}`);