back-end 에서도, front-end 에서도, ECMAScript 를 사용하고 있는 당신, 유효성 검사 할때는 joi 하라!
Joi 는 한마디로 말해서 유효성검사 모듈이다.
가장 쉬운 에로 노드서버에서 get, post, put, delete 등 라우터를 호출할때 함께 전송되는 파라미터값들을 검증할 때 사용한다거나,
쿼리 실행 전에 넘어온 값들을 검증한다거나 할 때 유용하게 사용할 수 있다.
hapi/joi 였었는데 독립했나보네.
엔티티별로 정의해 놓으면 매우 편리하다. 예를 들어 유저에 관한 정보를 정의해놓고 체크한다던지 하는..
공식 웹사이트에서 예제를 가져와 봤다.
const Joi = require('joi');
const schema = Joi.object({
username: Joi.string()
.alphanum()
.min(3)
.max(30)
.required(),
password: Joi.string()
.pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')),
repeat_password: Joi.ref('password'),
access_token: [
Joi.string(),
Joi.number()
],
birth_year: Joi.number()
.integer()
.min(1900)
.max(2013),
email: Joi.string()
.email({ minDomainSegments: 2, tlds: { allow: ['com', 'net'] } })
})
.with('username', 'birth_year')
.xor('password', 'access_token')
.with('password', 'repeat_password');
schema.validate({ username: 'abc', birth_year: 1994 });
// -> { value: { username: 'abc', birth_year: 1994 } }
schema.validate({});
// -> { value: {}, error: '"username" is required' }
// Also -
try {
const value = await schema.validateAsync({ username: 'abc', birth_year: 1994 });
}
catch (err) { }
'Note > Node.js' 카테고리의 다른 글
moment.js - javascript - 시간 관련 라이브러리 (0) | 2022.11.23 |
---|---|
hapi - node server framework (0) | 2022.11.23 |
쿼리빌더 knex.js (0) | 2020.08.26 |
자바스크립트 - 아직도 lodash 를 안 쓰십니까? (0) | 2020.08.26 |
Express - 노드 웹 프레임워크 :: express 를 이용해서 웹서버를 구동시켜보자. (1) | 2013.03.06 |