Расширяет все пакеты проверки Joi из одного файла и импортирует все с помощью const Joi = require ('joi') - PullRequest
0 голосов
/ 25 февраля 2019

Как я могу экспортировать joi-phone-number пакет типа joi-object example в один файл и импортировать и использовать следующим образом?Ниже мой validation.js и импорт в index.js.

// validation.js
const Joi = require('joi');
module.exports = function({
  Joi.objectId = require('joi-objectid')(Joi);
  // Here i want to import phone number validation.
})

, сейчас я создаю две константы для проверки objectid и handphone.

// schema.js
const Joi = require('joi');
const MyJoi = Joi.extend(require('joi-phone-number')); // I want to add this line in validation.js.
exports.validate = function(data) {
   const schema = {
       name: MyJoi.string().required(),
       hp: MyJoi.string().phoneNumber({ defaultCountry: 'US', format: 'e164})
   }
}

Я хочу поместить всеJoi упаковывает в один файл и импортирует этот файл, чтобы использовать различные типы проверки.

// What I want to achieve
const Joi = require('joi)
exports.validate = function(data) {
   const schema = {
       id: Joi.ObjectId(),
       name: Joi.string().required(),
       hp: Joi.string().phoneNumber()
       }
}

1 Ответ

0 голосов
/ 15 марта 2019

joi-objectId выглядит старым и не использует API Joi.extend().Вы можете упростить вещи и освободить себя от этой зависимости.Единственное, что он делает - проверяет строку следующим образом:

Joi.string().regex(/^[0-9a-fA-F]{24}$/);
// validate.js
const Joi = require("joi");
const MyJoi = Joi.extend(require("joi-phone-number"));

exports.validate = function (data) {
  const schema = {
    id: MyJoi.string().regex(/^[0-9a-fA-F]{24}$/),
    name: MyJoi.string().required(),
    hp: MyJoi.string().phoneNumber()
  };

  return MyJoi.validate(data, schema);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...