简体   繁体   English

什么样的 JS 数据结构内部代表?

[英]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_ARGSDEFAULT_ERRORS_OPTSDEFAULT_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM