MERN router.get 请求返回未定义
MERN router.get request returning undefined
因此,我正在尝试使用获取请求来查找用户的电子邮件并将信息显示在屏幕上。为此,我使用用户的电子邮件设置了一个本地存储项目,并试图在我的 api 调用中引用它。但是,在后端方面,当我尝试通过 axios 调用发送电子邮件时,它并没有到达我可以对其执行任何操作的后端。我收到状态代码 500 错误以及 TypeError: Cannot read property 'then' of undefined
。
这是我的 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,
})
})
})
}
我可以在事物的前端引用电子邮件,但是一旦到达后端,一切都不确定。感谢任何帮助。
module.exports.getUserByEmail = function (email, callback) {
console.log("getUserByEmail", email)
var query = { email: email };
console.log(query);
User.findOne(query, callback);
};
这个函数没有return任何东西
你需要return从中得到一些东西。
你可以
return user.findOne(query, callback);
只要 user.findOne return 是什么,如果它 mongo 或 mongo 它可能是一个承诺。
你还需要路线
router.get("/user/:email", function(req, res)
因此,我正在尝试使用获取请求来查找用户的电子邮件并将信息显示在屏幕上。为此,我使用用户的电子邮件设置了一个本地存储项目,并试图在我的 api 调用中引用它。但是,在后端方面,当我尝试通过 axios 调用发送电子邮件时,它并没有到达我可以对其执行任何操作的后端。我收到状态代码 500 错误以及 TypeError: Cannot read property 'then' of undefined
。
这是我的 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,
})
})
})
}
我可以在事物的前端引用电子邮件,但是一旦到达后端,一切都不确定。感谢任何帮助。
module.exports.getUserByEmail = function (email, callback) {
console.log("getUserByEmail", email)
var query = { email: email };
console.log(query);
User.findOne(query, callback);
};
这个函数没有return任何东西 你需要return从中得到一些东西。
你可以
return user.findOne(query, callback);
只要 user.findOne return 是什么,如果它 mongo 或 mongo 它可能是一个承诺。
你还需要路线
router.get("/user/:email", function(req, res)