从模块返回数据以在React页面中呈现

时间:2019-08-29 17:02:03

标签: javascript reactjs express puppeteer gatsby

我的项目结构如下:

  • 项目
    • 客户
    • 机器人
    • node_modules
    • index.js

文件:

  • 客户端包含GatsbyJS(反应)
  • 全部包含特定任务要做的所有模块
  • Index.js是我的expressjs服务器

我已经建立了它们之间的联系,我的问题是,我想从我的机器人模块中的每个模块中检索具体的响应,即:

async function login(page) {
  await page.goto(LOGIN_PAGE);
  await page.waitFor("#loginForm");
  await page.type(NAME, "USER");
  await page.type(PW, "PASSWORD");
  await page.click(SUBMIT);

  var Data = [
    ...document.querySelectorAll(
    "#data"
    )
  ];
}

我要在以下位置渲染var数据:

反应文件:

import React from "react"

const Header = () => (

  <div className="header-content">
    HERE
  </div>

)

然后在我的index.js(Express服务器)中直接呈现由gatsby生成的index.html:

app.get("/home", (req, res) => {
  res.sendFile(path.join(__dirname, "/client/public/index.html"));
});

是否可以通过这种方式传递数据,或者还有其他正确且可能的方式来传递数据?

感谢读者的阅读,我对Express如何与React结合使用一无所知。

关于, 路易斯。

1 个答案:

答案 0 :(得分:0)

也许您可以使用以下选项。

  1. 使用sessionStorage,localStorage甚至cookie将数据传递到客户端
  2. 使用像ejs这样的模板,或者您使用自己的自定义html而不是生成的gatsby,并将数据嵌入到脚本标签中。
  3. 也许可以通过在服务器端提供值来使用react上下文(未经测试)