因此,我正在尝试使用get请求来查找用户的电子邮件并在屏幕上显示信息。为此,我用用户的电子邮件设置了一个本地存储项目,并试图在我的api调用中引用它。但是,在后端方面,当我尝试通过axios呼叫发送电子邮件时,它无法发送到后端,在这里我可以做任何事情。与此TypeError: Cannot read property 'then' of undefined
一起收到状态代码500错误。
这是我的router.get函数引发错误
router.get("/user", function(req, res) {
console.log("id hit");
console.log(req.data);
console.log(req.params.email);
db.User
.getUserByEmail(req.params.email)
.then((dbModel) => res.json(dbModel))
.catch((err) => res.status(422).json(err));
});
这是我的getUserByEmail函数
module.exports.getUserByEmail = function (email, callback) {
console.log("getUserByEmail", email)
var query = { email: email };
console.log(query);
User.findOne(query, callback);
};
这是我的前端API axios调用
getUser: function(email) {
console.log("API EMAIL: ",email);
return axios.get("/api/users/user/", email);
}
这是我要在其上显示信息的页面上的componentDidMount
componentDidMount() {
const userEmail = localStorage.getItem("userEmail");
this.setState({
email: userEmail
}, () => {
console.log(this.state.email);
API.getUser(this.state.email)
.then(data => {
this.setState({
firstName: data.firstName,
lastName: data.lastName,
})
})
})
}
我可以在邮件的前端引用该电子邮件,但是一旦到达后端,则所有内容都不确定。任何帮助表示赞赏。
答案 0 :(得分:0)
module.exports.getUserByEmail = function (email, callback) {
console.log("getUserByEmail", email)
var query = { email: email };
console.log(query);
User.findOne(query, callback);
};
此函数不返回任何内容 您需要从中返回一些东西。
你可以做
return user.findOne(query, callback);
只要user.findOne返回某物,并且如果它的猫鼬或mongo可能是proimse。
还需要路线
router.get("/user/:email", function(req, res)