📜  hapi 介绍请求正文 (1)

📅  最后修改于: 2023-12-03 15:31:06.054000             🧑  作者: Mango

介绍hapi的请求正文

当我们使用hapi构建web应用程序时,我们通常需要处理请求正文。请求正文是一个HTTP请求中携带的数据块,包含客户端发送给服务器的数据。在hapi中,我们可以方便地获取和处理请求正文。

获取请求正文

我们可以使用hapi的request.payload属性来获取请求正文数据。在处理POST请求时,请求正文通常包含表单数据或JSON数据。以下是一个示例代码片段:

server.route({
  method: 'POST',
  path: '/user',
  handler: (request, h) => {
    const payload = request.payload;
    // 处理payload
    return h.response('User created').code(201);
  }
});

在上面的示例中,我们使用request.payload获取POST请求的请求正文。我们还可以使用request.payload.fieldName来获取请求正文中的特定字段。

处理请求正文

hapi支持处理多种类型的请求正文,包括JSON、表单和多部分数据。我们可以使用hapi的插件来处理这些请求正文类型。以下是一些常用的插件:

  • hapi-payload: 支持JSON和表单数据。
  • hapi-multipart: 支持多部分数据。

使用这些插件非常简单。只需将它们添加到hapi的插件列表中即可:

const server = Hapi.server({
  port: 3000,
  routes: {
    payload: {
      maxBytes: 1048576,
      parse: true,
      allow: ['application/json', 'multipart/form-data', 'application/x-www-form-urlencoded']
    }
  },
  plugins: {
    'hapi-payload': {
      multipart: true
    },
    'hapi-multipart': {
      maxBytes: 1048576,
      output: 'stream'
    }
  }
});

我们还可以将插件的配置选项添加到hapi实例的路由选项中。这将覆盖全局插件配置选项。

结论

在hapi中,我们可以轻松地获取和处理请求正文。hapi的插件系统使得处理不同类型的请求正文非常容易。使用hapi,我们可以开发出高效、灵活的web应用程序。