Как работает несколько функций, вызываемых в JOI?

#javascript #node.js #joi

#javascript #node.js #joi

Вопрос:

Как работает Joi.string().aphanum() и так далее. Как можно складывать вызовы функций один за другим, как показано в name и birthyear . Вся ли эта функция в классе или что-то в этом роде, и если да, то как это возможно для цепочки вызовов функций, подобных этой

 const Joi = require('joi'); 
const schema = Joi.object().keys({ 
  name: Joi.string().alphanum().min(3).max(30).required(),
  birthyear: Joi.number().integer().min(1970).max(2013), 
}); 
 

Ответ №1:

Это совершенно верно. Каждый из этих методов возвращает новый объект (который также имеет эти методы). Это очень похоже на выполнение чего-то подобного someString.toUpperCase().split("") в обычном Javascript. Сначала будет получена строка, запущена встроенная toUpperCase функция для нее, а затем запущена другая встроенная функция split для возвращаемой строки.

Вы просто объединяете методы и создаете новые объекты после каждого вызова.

Это возможно, потому что каждый из этих методов возвращает недавно измененный объект.