【问题标题】:How to send next.js client side data to the express server?如何将 next.js 客户端数据发送到快递服务器?
【发布时间】:2019-05-27 23:02:24
【问题描述】:

例如,在我的 Next.js 登录组件中,我有一个 API 调用,它给了我一些数据

 submitLoginForm = e => {
   e.preventDefault();
   const loginData = {
     email: this.state.email,
     password: this.state.pass
   };

   axios.post("https://reqres.in/api/login", loginData)
  .then(res => console.log(res));

 };

我有一个处理服务器端渲染的快速服务器。现在我如何将响应数据从客户端发送到 server.js 文件??

【问题讨论】:

    标签: reactjs express next.js


    【解决方案1】:

    正如您所说,NextJS SSR 只是一个为应用程序提供服务的 ExpressJS 服务器,您可以在 express 文件中添加一个路由,并让客户端向该路由发送请求。

    server.js

    app.get('/my/route', (req, res) => {
      // do something
    
      res.send('my route');
    });
    

    在您的客户端

    axios.get('http://localhost:3000/my/route').then(console.log) // my route
    

    编辑:

    只是为了防止人们说 OP 要求使用 POST 方法,而不是 GET

    与 POST 一起使用

    app.post('/my/route', (req, res) => {
      const { body } = req;
    
      // do something with body
    
      res.send('response after posting to server');
    });
    

    在您的客户中

    axios.post('http://localhost:3000/my/route', { data: [] })
      .then(console.log) // response after posting to server
    

    【讨论】:

    • 他在问如何发送 POST 请求,而不是 GET 请求
    • @AljoshaNovakovic 我不明白这有多重要。这只是如何在 NextJS SSR 旁边使用 ExpressJS 的一个示例......无论如何,我已经根据您的反馈更新了答案:\
    • 哈哈是的,基本上是一样的,我只是把这个问题理解为更想知道如何从客户端发送(无论是 GET 还是 POST),以及是否有内置的 nextjs 方式来这样做(例如,而不是带 axios)
    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2021-12-07
    • 1970-01-01
    • 2022-12-13
    相关资源
    最近更新 更多