- Joi: Joiは、Node.js向けの非常に人気のあるバリデーションライブラリです。シンプルなAPIを提供し、スキーマベースのバリデーションをサポートしています。以下はJoiの使用例です。
const Joi = require('joi');
const schema = Joi.object({
username: Joi.string().alphanum().min(3).max(30).required(),
email: Joi.string().email().required(),
password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
});
const data = {
username: 'john123',
email: '[email protected]',
password: 'password123',
};
const validationResult = schema.validate(data);
console.log(validationResult.error); // null if valid, otherwise an error object
- Yup: Yupは、シンプルで直感的なAPIを提供するバリデーションライブラリです。Joiと同様にスキーマベースのバリデーションをサポートしています。以下はYupの使用例です。
const yup = require('yup');
const schema = yup.object().shape({
username: yup.string().alphanum().min(3).max(30).required(),
email: yup.string().email().required(),
password: yup.string().matches(/^[a-zA-Z0-9]{3,30}$/).required(),
});
const data = {
username: 'john123',
email: '[email protected]',
password: 'password123',
};
schema.validate(data)
.then(() => console.log('Valid'))
.catch((error) => console.log(error));
- Validator.js: Validator.jsは、軽量で柔軟なバリデーションライブラリです。JoiやYupほど豊富な機能はありませんが、必要な基本的なバリデーションを提供します。以下はValidator.jsの使用例です。
const validator = require('validator');
const data = {
username: 'john123',
email: '[email protected]',
password: 'password123',
};
if (validator.isAlphanumeric(data.username) &&
validator.isLength(data.username, { min: 3, max: 30 }) &&
validator.isEmail(data.email) &&
validator.isLength(data.password, { min: 3, max: 30 })) {
console.log('Valid');
} else {
console.log('Invalid');
}
これらのライブラリは、Node.jsでのバリデーションを簡単に行うための優れた選択肢です。JoiとYupは豊富な機能と柔軟性を提供し、Validator.jsはシンプルなアプローチを追求しています。プロジェクトの要件や好みに応じて、最適なライブラリを選択してください。