바르고 뜨겁게
[NodeJS] util 모듈(deprecate, promisify) 본문
util 모듈(deprecate, promisify)
deprecate
const util = require('util');
const dontUseMe = util.deprecate((x,y)=>{
console.log(x+y);
},'이 함수는 2019-01-01 까지만 지원합니다.');
dontUseMe(1,2);
3
(node:20972) DeprecationWarning: 이 함수는 2019-01-01 까지만 지원합니다.
promisify
(error,data)=>{}
형태의 콜백은 프로미스로 만들 수 있다.
프로미스 형태는 async/await
변경 가능하다
const util = require('util');
const crypto = require('crypto');
// 아래와 같은 콜백형태를 프로미스로 변경
crypto.randomBytes(64, (err, buf) => {
const salt = buf.toString('base64');
console.log('랜덤 salt: ', salt);
console.time('암호화시간');
crypto.pbkdf2('password', salt, 1055351, 64, 'sha512', (err,key)=>{
console.log('암호화 완료: ', key.toString('base64'));
console.timeEnd('암호화시간');
});
});
// 아래처럼 하면 프로미스 형태로 변경가능하다
const randomBytesPromise = util.promisify(crypto.randomBytes);
const pbkdf2Promise = util.promisify(crypto.pbkdf2);
randomBytesPromise(64)
.then((buf) =>{
const salt = buf.toString('base64');
return pbkdf2Promise('password',salt,1055351, 64, 'sha512');
})
.then((key)=>{
console.log('암호화 완료: ', key.toString('base64'));
})
.catch((err)=>{
console.error(err);
})
// async/await 형태로 또 변경 가능
(async () => {
const bug = await randomBytesPromise(64);
const slat = buf.toString('base64');
const key = pbkdf2Promise('password', salt, 1055351, 64, 'sha512');
console.log('암호화 완료: ',key.toString('base64'));
});
'자바스크립트 > Node Js' 카테고리의 다른 글
[NodeJS] events 모듈 (0) | 2018.12.27 |
---|---|
[NodeJS] FS(파일시스템) 모듈 - 동기와 비동기 (0) | 2018.12.27 |
[NodeJS] crypto 양방향 암호화(cipher) (0) | 2018.12.18 |
[NodeJS] 모듈 (OS 모듈, path 모듈, url 모듈, querystring 모듈) (0) | 2018.12.18 |
[NodeJS] 내장객체 - global, __filename, __dirname, process, console, 타이머 (0) | 2018.12.14 |
Comments