[英]What kind of JS data structure internals represent?
I am looking at celebrate.js .我在看celebrate.js 。 Object internals
Object 内部结构
internals
{
DEFAULT_ERROR_ARGS: { celebrated: true },
DEFAULT_ERRORS_OPTS: { statusCode: 400 },
DEFAULT_CELEBRATE_OPTS: { mode: 'partial' }
}
Different actions are applied to this object later.稍后将对此 object 应用不同的操作。
internals.validateSegment = (segment) => (spec, joiConfig) => {
const finalValidate = (req) => spec.validateAsync(req[segment], joiConfig);
finalValidate.segment = segment;
return finalValidate;
};
What do internals represent?内部代表什么?
The internals
object holds a set of default options (called segments here). internals
结构 object 包含一组默认选项(此处称为段)。 They are accessed by their identifiers DEFAULT_ERROR_ARGS
, DEFAULT_ERRORS_OPTS
and DEFAULT_CELEBRATE_OPTS
.它们通过标识符
DEFAULT_ERROR_ARGS
、 DEFAULT_ERRORS_OPTS
和DEFAULT_CELEBRATE_OPTS
访问。
The segments are object themselves, that contain options (eg celebrated
) and their default values (eg true
).这些段本身是 object,其中包含选项(例如
celebrated
)及其默认值(例如true
)。
All segments of internals
can be passed to and validated by validateSegment()
. internals
的所有段都可以传递给validateSegment()
并由其验证。 Each property is defined by a key (here: spec
) and a value (here: joiConfig
).每个属性都由一个键(此处:
spec
)和一个值(此处: joiConfig
)定义。 For each specification the function validateAsync()
is called and the result is assigned to finalValidate
.对于每个规范,调用 function
validateAsync()
并将结果分配给finalValidate
。
The function validateSegment()
can be called for individual segments.可以为各个段调用 function
validateSegment()
。 See function maybeValidateBody()
in the code that you linked to, for example:请参阅您链接到的代码中的 function
maybeValidateBody()
,例如:
internals.maybeValidateBody = (segment) => {
const validateOne = internals.validateSegment(segment); <-- Called here!
return (spec, joiConfig) => {
...
In the above code block, the segment
is passed to internals.validateSegment()
and the return value is assigned to validateOne
, for example.例如,在上面的代码块中,
segment
被传递给internals.validateSegment()
并且返回值被分配给validateOne
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.