【问题标题】:HapiJS returns 400 error on DeleteHapiJS 在删除时返回 400 错误
【发布时间】:2018-10-31 18:11:50
【问题描述】:

我在发送删除请求时收到“statusCode”:400。在我的delete.route.js 我有这个:

async handler(req) {
  const { portfolioId } = req.params

  const deletePortfolio = await service.deletePortfolio(portfolioId)

  return deletePortfolio
},

在我的服务中,我有这个。这与创建相同,但我尚未使用 mongodb 和 hapi 删除任何内容。

async deletePortfolio(portfolioId) {
    const deletePortfolio = await this.model.findOneAndDelete({
      _id: portfolioId,
    })
    return deletePortfolio
}

您可以在此处查看上下文中的完整代码:

https://github.com/imcodingideas/crypto-portfolio/blob/master/server/src/portfolio/delete.route.js

【问题讨论】:

  • 不要等待函数内的值然后返回它。它实际上以无操作的方式结束,因为无论如何它都会简单地返回 Promise。只需返回承诺,因为您应该也注意到您需要这样做,因为您有await service.deletePortfolio(..)。请注意,.findOneAndDelete() 正在使用这些选项从“之前”删除中返回文档,但这与 404 无关。实际上,404 根本不应该与任何此代码相关,因为它只是一个“未找到”。除非您可以确认此代码执行,否则很可能是错误的 url

标签: mongodb mongoose hapijs


【解决方案1】:

您的请求的服务器响应是什么?我相信这可能与您的验证规则有关。

validate: {
          params: {
            portfolioId: Joi.string().required(),
          }
        }

您确定您的portfolioId 是一个字符串吗?我检查了您的客户端代码,但找不到您的删除请求点。

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2014-05-27
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多