#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
для возвращаемой строки.
Вы просто объединяете методы и создаете новые объекты после каждого вызова.
Это возможно, потому что каждый из этих методов возвращает недавно измененный объект.