【问题标题】:How to send JSON object from express server to next js page?如何将 JSON 对象从快递服务器发送到下一个 js 页面?
【发布时间】:2020-01-01 14:29:37
【问题描述】:

我是下一个 js 的新手,并表示我正在尝试将发布数据从服务器发送到客户端,在本例中是我的 Web 浏览器。 我能够在服务器上接收数据,现在我想将此数据发送到相应的页面。 以下是我的 server.js 文件的代码:-

const express = require('express')
const next = require('next')

const port = parseInt(process.env.PORT, 10) || 3000
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

app.prepare().then(() => {
  const server = express()

  server.use(express.json());

  server.post("/posts", (req, res) => {
    req.body.data
    res.send(req.body.data);
    console.log("Post data : ",req.body.data)
  });

  server.get('*', (req, res) => {
    return handle(req, res)
  })

  server.listen(port, err => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
})

现在我想将 req.body.data 发送到帖子页面。我们如何使用 nextjs 做到这一点? 任何帮助或建议表示赞赏。谢谢。

【问题讨论】:

    标签: javascript node.js reactjs express server-side-rendering


    【解决方案1】:

    响应的json方法可以直接发送json。

    res.json(req.body.data);
    

    【讨论】:

    • 非常感谢@Vishnudev。
    【解决方案2】:

    在您的 Express 应用程序中创建一个端点,通过 res.json() 将数据返回给客户端

    然后通过向它发出 Ajax 请求,从您的 React 应用程序(可能在 getInitialProps 方法中)访问它。

    【讨论】:

    • 非常感谢@Quentin。
    • 就像我们可以在 get 中返回一样,我们也可以在 post 中返回。我正在尝试执行以下操作:- server.post("/posts", (req, res) => { req.body.data res.send(req.body.data); console.log("Post data : ",req.body.data) res.json(); return app.render(req, res, '/posts', { id: "Anup" }) });这行得通吗?
    • @anup — 不。您正尝试对 same 请求作出 3 次响应。你应该照我说的做。
    • @Quentin 如果数据被ajax调用,它仍然是SSR吗? google tracker 可以跟踪使用 ajax 为 SEO 呈现的数据吗?感谢您的解决方案
    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多