我是全栈 Web 开发的新手。现在我遇到了一个问题。我正在使用 mongodb、mongoose、node 和 express。
我有两个控制器,一个是注册,另一个是配置文件。
注册代码将是这样的
router.post('/',(req,res,next)=>{
let user = new userProfile();
user.email = req.body.email;
user.name = req.body.firstName;
user.save((err)=>{
if(err){
return err;
}
})
res.redirect('/profile');
});
单击提交后,我可以在集合中找到用户条目。现在我在配置文件控制器。
个人资料代码:
router.get('/',(req,res)=>{
console.log(req.body.email);
userProfile.find({email: 'yyyy'},(err,user)=>{
if(err) return err;
})
res.render('profile/profile');
})
当我执行 console.log 时,它输出未定义。预期的输出应该是注册页面的电子邮件地址,这样当我找到功能时,我将获得具有相同电子邮件地址的正确条目并在网页上显示相应的用户名。
我的问题是配置文件控制器如何从注册控制器访问相同的帖子信息。
我假设您在 Express 中使用了像 bodyParser 这样的中间件。否则您的帖子请求req.body
将不起作用。
在router.get()
请求中,您没有任何正文。您可以使用这样的路线:
http://yourdomain.com/api/profile/[email protected]
和:
router.get('/profile/:email',(req,res)=>{
console.log(req.query.email);
userProfile.find({email: req.query.email},(err,user)=> {
[...]
}
或使用参数:
http://yourdomain.com/api/profile/[email protected]
和:
router.get('/profile/',(req,res)=>{
console.log(req.params.email);
userProfile.find({email: req.params.email},(err,user)=> {
[...]
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句