我正在使用NodeJS
运行joi
,并且正在尝试验证IBM Watson IoT配置对象。
这是我的架构:
const schema = {
body: {
config: Joi.object().keys({
org: Joi.string().required(),
type: Joi.string().required(),
id: Joi.string().required(),
domain: Joi.string().required(),
'auth-method': Joi.string().required(),
'auth-token': Joi.string().required()
}).required()
}
};
这是我的检查:
Joi.validate(req.body, schema, { allowUnknown: true }, (err, value) => {
console.log(err);
});
这会将null
作为error
返回,表示没有错误,但即使我没有POST
向我的身体添加任何参数,也是如此。
基本上我想确保body
的{{1}}包含有效的JSON对象,如下所示:
HTTP POST
答案 0 :(得分:0)
您没有将Joi对象传递给validate函数,您应该传递<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.6.9/angular-sanitize.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl as vm">
<input type="checkbox" ng-model="vm.showDetails" />
vm.showDetails
<hr>
<div ng-bind-html="vm.showDetails ? '<span>asd</span>' : '<span>red</span>'"></div>
</div>
</body>
</html>
而不是schema.body.config
。如果body和config应该是验证的一部分,你应该用schema
包装它们,就像你对config中的所有键一样。