Ref. https://any-ting.tistory.com/50?category=454236
두 번째 파라미터는 우리가 만들려고 하는 모델(테이블) 컬럼 속성을 정의합니다.
대표적으로 자주 사용하는 속성들에 대해 설명하겠습니다.
- type : 데이터 타입을 정의(문자, 숫자, 날짜 등등)
- primaryKey : 기본 키 설정(default : false) 시퀄 라이즈에서는 기본적으로 primaryKey 컬럼을 생성한다.(id라는 이름으로 생성)
- autoIncrement : 숫자 자동 증가(default : false)
- allowNull : NOT NULL 허용 여부(default : true)
- unique : Unigue 조건인지 아닌지에 대한 옵션
- comment : column에 대한 설명 작성 가능
- validate : 데이터 유효성 검사를 하는 속성
공식 홈페이지 나와 있는 속성은 아래와 같습니다.
validate: {
is: /^[a-z]+$/i, // matches this RegExp
is: ["^[a-z]+$",'i'], // same as above, but constructing the RegExp from a string
not: /^[a-z]+$/i, // does not match this RegExp
not: ["^[a-z]+$",'i'], // same as above, but constructing the RegExp from a string
isEmail: true, // checks for email format (foo@bar.com)
isUrl: true, // checks for url format (http://foo.com)
isIP: true, // checks for IPv4 (129.89.23.1) or IPv6 format
isIPv4: true, // checks for IPv4 (129.89.23.1)
isIPv6: true, // checks for IPv6 format
isAlpha: true, // will only allow letters
isAlphanumeric: true, // will only allow alphanumeric characters, so "_abc" will fail
isNumeric: true, // will only allow numbers
isInt: true, // checks for valid integers
isFloat: true, // checks for valid floating point numbers
isDecimal: true, // checks for any numbers
isLowercase: true, // checks for lowercase
isUppercase: true, // checks for uppercase
notNull: true, // won't allow null
isNull: true, // only allows null
notEmpty: true, // don't allow empty strings
equals: 'specific value', // only allow a specific value
contains: 'foo', // force specific substrings
notIn: [['foo', 'bar']], // check the value is not one of these
isIn: [['foo', 'bar']], // check the value is one of these
notContains: 'bar', // don't allow specific substrings
len: [2,10], // only allow values with length between 2 and 10
isUUID: 4, // only allow uuids
isDate: true, // only allow date strings
isAfter: "2011-11-05", // only allow date strings after a specific date
isBefore: "2011-11-05", // only allow date strings before a specific date
max: 23, // only allow values <= 23
min: 23, // only allow values >= 23
isCreditCard: true, // check for valid credit card numbers
// Examples of custom validators:
isEven(value) {
if (parseInt(value) % 2 !== 0) {
throw new Error('Only even values are allowed!');
}
}
isGreaterThanOtherField(value) {
if (parseInt(value) <= parseInt(this.otherField)) {
throw new Error('Bar must be greater than otherField.');
}
}
}
'Programming > JavaScript, Node.js' 카테고리의 다른 글
Migrating from npm (0) | 2021.07.12 |
---|---|
리덕스(Redux)를 왜 사용하는가? (0) | 2021.07.12 |
[Sequelize] Data type of Model in Sequelize (1) | 2021.07.06 |
[sequelize] DATETIME to TIMESTAMP (1) | 2021.07.06 |
serverless-dotenv-plugin (0) | 2021.06.30 |
댓글