Я портирую существующее приложение Hapi 16 на Hapi 17 - и у меня возникли проблемы с проверкой Joi ...
<!-- language: lang-js -->
'use strict';
const Joi = require('joi');
const validator = Joi.object({
"sku": Joi.string().required(),
"name": Joi.string()
// cut for berevity..
)
})
module.exports = {
method: ["POST", "PUT"],
path: "/api/products",
options: {
validate: {
params: validator
},
async handler(request, h) {
try {
const updateOrCreateItemQuery = { sku: request.payload.sku };
const result = await request.postItem( "product", updateOrCreateItemQuery);
return result;
} catch (err) {
throw h.internal("Internal MongoDB error", err);
}
}
}
};
Когда я запускаю приложение (а не при посещении маршрута), я получаю следующую ошибку: { AssertionError [ERR_ASSERTION]: Cannot set path parameters validations without path parameters: POST /api/products
Я все снял - так что это только этот маршрут. Это определенно как-то связано с Joi, например, когда я удаляю проверку - она работает ... Я читал документы - и не вижу, что я делаю не так ...
(Я применил различные декораторы к объекту запроса - например, postItem и т. Д., Который ... отправляет элемент в БД)