유저 생성을 하는 도중, 닉네임을 서버에서 랜덤으로 만들어서 리턴해주고 싶었다.
회원가입은 최소한의 데이터만 입력받게 하고 싶었기 때문이다.
전화번호로 유니크키를 결정하니 닉네임은 겹쳐도 상관없어서 랜덤 제너레이터를 사용하기로 했다.
0. 패키지 설치
npm install unique-names-generator
위같은 패키지가 있어서 사용했다.
나는 첫문자가 대문자형식이길 원했다.
1. api 소개
1) 딕셔너리
This is an array of dictionaries. Each dictionary is an array of strings containing the words to use for generating the string.
글을 보니 이름에 포함될 것들을 넣으라고 한다.
2) 구분자
A string separator to be used for separate the words generated. The default separator is set to
문자 사이에 어떤걸로 구분할건지 설정하라는 것이라고 한다.
3) 길이
The default value is set to 3 and it will return a name composed of 3 words. This values must be equal or minor to the number of dictionaries defined (3 by default). Setting the length to a value of 4 will throw an error when only 3 dictionaries are provided.
문자 길이를 설정하라는데, 기본 3글자이고, 4글자 설정부터는 에러를 내뱉는다고 한다.
4) 문자 스타일 결정
The default value is set to lowerCase and it will return a lower case name. By setting the value to
upperCase, the words, will be returned with all the letters in upper case format. The capital option will capitalize each word of the unique name generated
보니 style이라는 옵션을 줘서 대소문자를 결정할 수 있는것 같다.
5) seed
A seed is used when wanting to deterministically generate a name. As long as the provided seed is the same the generated name will also always be the same.
시드를 동일하게 주면 랜덤이름이 동일하다고 한다.
2. 활용
import { uniqueNamesGenerator, languages, colors, names } from 'unique-names-generator';
const capitalizedRandomName: string = uniqueNamesGenerator({
dictionaries: [languages, colors, names],
separator: '',
style: 'capital',
}); // PoliteRedJone
export default capitalizedRandomName;
나는 style을 첫문자 대문자로 설정하고
구분자는 주지않았다.
문자를 이루는건 언어, 색, 이름을 추가했다.
이름이 다르길 원했기 때문에 seed는 추가하지 않았다.
문자 길이는 기본 3이기 때문에 기본값으로 두었다.
import capitalizedRandomName from '~/libs/util/nickname';
const nickname = capitalizedRandomName;
위처럼 가져다가 사용하였다.
그 외 참고
- 여러가지 스타일을 제공하는 영문 랜덤 제너레이터
- 동물, 히어로, 게임 캐릭터, 몬스터 중 타입을 선택하여 랜덤 닉네임을 생성할 수 있는 한글 랜덤 제너레이터
- (관형사) + (동물) 형태로 랜덤하게 이름을 반환하는 한글 랜덤 제너레이터
'JaveScript > ExpressJS' 카테고리의 다른 글
ExpressJS와 ChatGPT 연동 (2) (1) | 2023.12.26 |
---|---|
ExpressJS와 ChatGPT 연동 (1) (2) | 2023.12.18 |
dayjs 사용해서 나이 계산하기 (0) | 2023.12.14 |
ts-jenum으로 Enum객체 활용 (0) | 2023.12.13 |
expressjs + typeorm 0.3 세팅 후 사용법 (1) | 2023.12.12 |