node.js - ValidationError: "value" 必须是一个对象 - ResponseValidation 阶段
问题描述
使用 hapi 服务器,我从处理程序返回,如下所示:
async function handler (req, h) {
...
h.unstate(key, cookieOptions);
const resp = h.redirect(redirectUri);
return resp;
}
...但返回 HTTP 500 错误。我在堆栈跟踪中发现了失败:
ValidationError: "value" must be an object
at Object.exports.process (~/project/node_modules/hapi/node_modules/joi/lib/errors.js:201:19)
at internals.Object._validateWithOptions (~/project/node_modules/hapi/node_modules/joi/lib/types/any/index.js:751:31)
at module.exports.internals.Any.root.validate (~/project/node_modules/hapi/node_modules/joi/lib/index.js:146:23)
at exports.response (~/project/node_modules/hapi/lib/validation.js:173:31)
at Request._postCycle (~/project/node_modules/hapi/lib/request.js:356:68)
at Request._reply (~/project/node_modules/hapi/lib/request.js:335:20)
at Request._execute (~/project/node_modules/hapi/lib/request.js:171:14)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
...这似乎来自onPostHandler和onPreResponse之间的响应验证生命周期步骤。
可能是什么问题?
解决方案
失败来自重定向时未初始化的响应,首先创建空响应应该修复它:
async function handler (req, h) {
...
const resp = h.response().redirect(redirectUri);
return resp;
}
推荐阅读
- javascript - 如何使用 JavaScript 修复“切换”“classList”
- c# - 引用任何组件中的变量
- java - 如果所有其他分支都返回,您是否应该使用 Else 语句?
- python - Pandas 和 Scipy TypeError:“NoneType”和“float”实例之间不支持“<”
- excel - 单元格格式为文本或前面有撇号,SAP Webi 中生成的 Excel 文件
- javascript - linktoDestination 不适用于 pdfmake
- python-3.x - Discord.py 为命令添加修饰符
- javascript - Node.js - setInterval 以半速无负载运行
- amazon-web-services - 如何在作业中读取批量提交作业有效负载?
- python - Opencv+arduino(人脸跟踪)问题