【问题标题】:NodeJs Express how to handle items(params) that sent from frontend?NodeJs Express 如何处理从前端发送的项目(参数)?
【发布时间】:2020-08-19 03:38:25
【问题描述】:

我是后端开发的新手(使用 NodeJs Express)。 这是一个非常基本的问题(我没有找到任何关于它的好教程) 问题是:

我有这行代码:

app.get('/test', function (req ,res){
  res.send('test');
});

我想做的是:后端只发送res 到前端,如果前端先发送一些 JSON。 就像后端会向前端显示一些东西,前提是前端先发送 JSON; 如何处理?写什么代码?

或者在谷歌搜索中输入什么来找到这种教程

【问题讨论】:

  • 您正在使用 node.js 构建一个 REST API。在 REST 中,我们不保留状态。当我们收到请求时,我们会处理和响应。在前端,您可以等到收到响应。使用 Promise、async-await 或回调来等待前端的响应。要处理传入的 JSON 正文,请使用 body-parser。根据请求正文,您可以处理和发送响应。 PS:每个请求都应该得到响应。这就是 REST 的行为方式。
  • 查看这些客户端请求库:XHRfetch。有了这些,您可以使用 JavaScript 向服务器发送 HTTP 请求。
  • 如果“先发送一些 JSON”是指先前的请求,那么您需要一个会话中间件来跟踪请求,因此当您处理请求时,您会知道“哦,我记得这个前端的家伙,他之前发送了一个 JSON。”基本上,在设置了像express-session 这样的会话管理中间件之后,每个请求处理程序中都有req.session,并且它在来自特定前端的每个请求之间共享。因此,您可以将 req.seesion.hasSentJSON 设置为 true 作为前端。

标签: node.js express backend


【解决方案1】:

您正在使用 node.js 构建一个 REST API。在 REST 中,我们不保留状态。当我们收到请求时,我们会处理并做出响应。在前端,您可以等到收到响应。使用 Promise、async-await 或回调来等待前端的响应。使用这些方法从前端axiosfetch 连接后端。要处理传入的 JSON 正文,请使用 body-parser。根据请求正文,您可以处理和发送响应。 PS:每个请求都应该得到响应。这就是 REST 的行为方式。

【讨论】:

    【解决方案2】:

    查询中

    yourbackend.com/test?message=welcomeToStackOverflow

    这是您可以在查询中访问的方式:

    
    const {message} = req.query;
    console.log(message);
    // welcomeToStackOverflow
    
    

    在参数中

    yourbackend.com/test/:message

    这是您可以使用 in params 访问的方式:

    
    const {message} = req.params;
    console.log(message);
    // welcomeToStackOverflow
    
    

    这里有工作示例:https://codesandbox.io/s/trusting-rosalind-37brf?file=/routes/test.js

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2022-01-28
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多