deprecate
특정 함수에 대하여, 지원이 만료될 것으로 예상되는 것에 deprecate로 감싸주어 미리 표시를 해준다.
const util = require('util'); const crypto = require('crypto'); const dontuseme = util.deprecate((x,y) => { console.log(x + y); }, '이 함수는 00부로 지원하지 않습니다.') dontuseme(1, 2); //node로 해당 코드 실행 시, 원하는 값 3은 얻을 수 있지만, Deprecation Warning이라는 주의와 함께 메시지가 표시된다.
promisify
promise를 지원하지 않는 (error, data) => {} 모양의 콜백은 util.promisify를 이용해 프로미스로 만들 수 있다.
const crypto = require('crypto'); const randomBytesPromise = util.promisify(crypto.randomBytes); const pbkdf2Promise = util.promisify(crypto.pbkdf2); //promise를 지원하지 않는 crypto.randomBytes를 감싸줌으로서, //콜백 depth를 깊이 들어갈 필요없게 만들어준다. crypto.randomBytes(54, (err, buf) => { const salt = buf.toString('base64'); console.log('salt', salt); crypto.pbkdf2('swoo바보', salt, 1203947, 64, 'sha512', (err, key) => { console.log('password', key.toString('base64')); }); }); randomBytesPromise(64) .then((buf) => { const salt = buf.toString('base64'); return pbkdf2Promise('swoo바보', salt, 1203947, 64, 'sha612'); }) .then((key) => { console.log('password', key.toString('base64')); }) .catch((err) => { console.error(err); }) //콜백을 promise로 1단 변신시켜주고 async (() => { const buf = await randomBytesPromise(64); const salt = buf.toString('base64'); const key = pbfkdf2Promise('swoo바보', salt, 1203947, 64, 'sha512'); }) //async, await으로 2단 변신까지 시킬 수 있게 된다.
util.callbackify는 promisify를 반대로 하여, 다시 콜백으로 만들어주는 것이다
Buffer & Stream - Nodejs (0) | 2019.05.14 |
---|---|
fs 모듈 (동기와 비동기) - Nodejs (0) | 2019.05.14 |
crypto 모듈을 이용한 양방향 암호화 - Nodejs (0) | 2019.05.14 |
crypto 모듈을 이용한 단방향 암호화(hash) - Nodejs (0) | 2019.05.14 |
RESTful API (0) | 2019.05.06 |
댓글 영역