【发布时间】:2020-11-28 07:41:03
【问题描述】:
您好,我没有收到关于 axios.get 的任何回复。我对做出反应等很陌生。我希望代码在输入错误密码或其中一个字段为空白时给出错误。我正在使用 mongoDB,下面是我的代码。
对于我的后端 login.js 文件
const router = require('express').Router();
let User = require('../models/users.model');
router.get("/login", async (req, res) => {
try {
const { email, pass } = req.body;
if (!email || !pass)
return res.status(401).json({ msg: "Not all fields have been entered." });
const user = await users.findOne({ email: email });
if (!user)
return res.status(401).json({ msg: "Not account with this email." });
const isMatch = await users.findOne({ pass: pass });
if (!isMatch) return res.status(401).json({ msg: "Invalid credentials." });
} catch (err) {
res.status(500).json({ error: error.message });
}
});
在前端我有这个
constructor(props) {
super(props);
this.state = {
email: '',
password: '',
errors: {}
};
this.handlePassChange = this.handlePassChange.bind(this);
this.handleEmailChange = this.handleEmailChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(e) {
e.preventDefault();
this.setState({
email: '',
password: '',
errors: {}
})
const user = {
email: this.state.email,
password: this.state.password
}
axios.get('http://localhost:3001/api/routes/login.js', user)
.then(function (response) {
console.log(response.data);
})
window.location.assign('/Dashboard' );
}
handleEmailChange(e) {
this.setState({
email: e.target.value,
});
};
handlePassChange(e) {
this.setState({
password: e.target.value,
});
}
【问题讨论】:
-
将
api/routes/login.js更改为/login。您正在将 uri 传递给 axios 而不是文件路径