需要帮助将 Hapi 应用程序从 v16.4.3 迁移到 v20.0.1

问题描述 投票:0回答:1

`我需要将 hapi.js 应用程序从 v16.4.3 迁移到 ^20.0.1。 由于 v17.0.0 进行了重大更改,包括reply()接口升级。有什么最佳的替代方法吗

return reply() 

return reply.reponse() 

在所有处理程序中?

节点版本:v16.20.2 Hapi版本:v20.0.1

//working code with version v16.4.3(Hapi)

const addFoo = {
  description: 'add foo data',
  notes: 'add foo data',
  tags: ['api', 'FooCondition'],
  validate: {
    payload: {
      id: joi.number().required(),
    },
  },
  handler: (req, reply) => {
    return maindb.subcategorymaster.findAll({
where: {'id': req.payload.id}
}).then((result) => {
      reply(result);
    }).catch((DBException) => {
      reply(DBException.message);
    });
  }
};

// Wanted to migrate to below code without making manual change at each and every handler.

//working code with version v20.0.1(Hapi)

const addFoo = {
  description: 'add foo data',
  notes: 'add foo data',
  tags: ['api', 'FooCondition'],
  validate: {
    payload: {
      id: joi.number().required(),
    },
  },
  handler: (req, reply) => {
    return maindb.subcategorymaster.findAll({
where: {'id': req.payload.id}
}).then((result) => {
      return reply.response(result);
    }).catch((DBException) => {
      return reply.response(DBException.message);
    });
  }
};

`

node.js migration hapi.js redundancy
1个回答
0
投票

我尝试使用中间件/生命周期方法,但没有找到自动执行这些更改的方法。我还在 hapi github repo 上提出了这个问题,并得到了答案:“没有一种自动或快速的方法可以从 v16 API 迁移到 v17+ API,因为迁移到 async/await 会影响您编写处理程序的方式。 ”因此,目前我们计划对所有处理程序进行手动更改。请参阅问题

您还可以参考 17.0.0 版本发行说明这里

© www.soinside.com 2019 - 2024. All rights reserved.