对节点服务器进行POST并处理JSON响应

时间:2016-12-23 15:39:06

标签: javascript node.js reactjs express react-router

我是React的新手,所以我想了解这一切是如何协同工作的。

在从节点服务器获取状态200之后,有没有办法更改为另一个组件呈现的组件?

例如。我正在通过注册页面向我的节点执行POST http请求到Express服务器。服务器响应json对象到我的前端。现在我想要呈现配置文件组件/页面而不是留在注册页面。这允许我使用Json数据并在配置文件页面上呈现它。这可能吗?如果您有其他选择,我也愿意接受建议。

谢谢大家。

注意: 我正在使用react路由器来控制不同的路由。 我的节点服务器设置了护照以处理单身。

2 个答案:

答案 0 :(得分:0)

请参阅http://redux.js.org/

上的Redux Architecture

了解其概念将使您明白此事。

然后,转到Redux的高级主题,您将了解异步请求如何与Redux组件交互 - (http://redux.js.org/docs/advanced/

希望这有帮助。

答案 1 :(得分:0)

您基本上需要管理应用程序的状态(用户已连接/未连接)。然后,您可以将页面包装在管理用户连接或未连接的组件中。

假设您在登录成功时将user_is_logged设置为true。你可以这样做:

var PageWrapper = React.createClass({
    render : function() {
        // user_is_logged is true if user is correctly logged
        // LoginPage is the authentication form
        var pageContent = user_is_logged ? this.props.children : <LoginPage />;
        return (
            <div>
                <Menu />
                <div className="container">
                    {pageContent}
                </div>
            </div>
        );
    },
});

var MyPage = React.createClass({
    render : function() {
        return (
            <PageWrapper>
                <div>content of page...</div>
            </PageWrapper>
        );
    },
});

并在ajax回调中重新渲染页面:

ReactDOM.render (<MyPage />, document.getElementById('my-app'));

它也适用于React路由器。