gpt4 book ai didi

node.js - Sails-React : Receive data on programmatic redirection

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:34 25 4
gpt4 key购买 nike

我正在使用 Sails 和 React 开发一个 Web 应用程序。在此,我注册用户并将其重定向到主页,并将 id 作为参数传递。因此,重定向后,UserController 的 home 操作将被调用。

这里是代码“api/controller/UserController”

home : function(req,res){
var userId = parseInt(req.params.id);

sails.log.warn('Home req.params.id :: ',userId);

if(userId && typeof userId === "number"){
User.findOne(userId)
.then(function(user){

sails.log.info('Sending user [home]:: ',user);
Router.run(routes, '/user/home/' + userId, function(Root){

return res.view("homepage",{
'body' : React.renderToString(<Root/>),
'user' : user
});
});
}).catch(function(err){
sails.log.error('Error while finding user :: ',err);
return res.negotiate(err);
})
}else{
return res.badRequest("User id must be a Integer value","400");
}

}

我应该怎么做,才能使用我的 React 组件显示用户信息?

最佳答案

在处理表单提交的 Controller 操作中,您应该将用户的 ID 存储在 session 中,例如:

req.session.me = newlyCreatedUser.id;
// Session is saved automatically when request is sent.
return res.redirect('/');

这意味着您的新用户也已有效“登录”。

然后在您的 home Controller 操作中,不要从参数中获取用户的 ID,而是从 session 中获取它。

有关更彻底的演练,请参阅 sails101/basic-login 。祝你好运!

Side note: As a rule of thumb, I would suggest using an AJAX request + loading spinner + client-side redirect (window.location='/') to submit your forms instead of a traditional HTML form submission + backend res.redirect() where possible. It tends to keep things cleaner for your app down the road, and helps encourage your backend to organically develop in a future-friendly way. Plus I just tend to think it's easier to reason about.

关于node.js - Sails-React : Receive data on programmatic redirection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com