nodejs

    node.js crypto를 이용한 random string 얻는법

    node.js에는 많은 기본제공 모듈이 있다. 그중에서 암호화,복호화 기능을 제공하는 crypto 모듈을 이용해서 랜덤 스크링을 얻을수 있는 방법이있어서 소개해 주려한다 랜덤 스트링의 경우 환경설정등의 key 값으로 종종 사용되기에 알아두면 편리하다 코드는 매우 간단하다 const crypto = require("crypto"); console.log(crypto.randomBytes(20).toString('hex')) 위와 같이 몇줄 안되는 소스로 영어 소문자+숫자의 랜덤스트링을 얻을수 있다. f39bf14f62922b8c054e5781aaa806e4f5ad4a39 console.log(crypto.randomBytes(20).toString('base64')) hex 에서 base64로 바꾸게 되면..

    [Lambda + S3] 람다로 S3 버킷내에 파일 다른 버킷으로 옮기기!

    참고자료 : http://jeonghwan-kim.github.io/node/2017/08/12/node-stream-you-need-to-know-3.html 개발을 하는 기능중 S3 버킷의 파일을 다른 버킷으로 이동시키는 기능을 개발 했었다. 기존의 소스의 경우 getobject 를 해서 파일을 메모리에 buffer로 가지고 있다가 putobject로 옮길 버킷에 업로드 하고. deleteObject로 기존 버킷의 파일을 삭제한다 get,put,delete object static async getObject(type, fileKey) { try { const config = await utils.getEnvConfig(type); const result = await s3 .getObject({ B..

    [Node.js] Redirect 를 data 와 함께 보내는법

    Node 서버 내에서 redirect를 data와 함께 보내줘야 하는 일이 있었다. 방법이야? data=1234와 같이 url에 querystring으로 던져주면 되는 일이지만 원시적인 방법으로 하고 싶지 않아서 [ node redirect with data ]라는 키워드로 구글링을 하여서 아래의 스택오버플로(친구!)에서 필요한 정보를 얻을 수 있었다. https://stackoverflow.com/questions/19035373/how-do-i-redirect-in-expressjs-while-passing-some-context How do I redirect in expressjs while passing some context? I am using express to make a web app ..

    [Node, express, ejs] i18next 써서 국제화 하기 [2]

    i18next 써서 국제화 하기 [2] 전편에서는 I18next 를 써서 라우터 에서 text 를 불러온뒤에 랜더링 하는것을 해보았습니다. 하지만 이와같은 방법으로 하게되면 json 의 값을 불러오는거 밖에 안되기에 나는 view 에 바로 넣고 싶은 방법을 찾고있었습니다. 힘들게 힘들게 찾은 이 issue 에서 사용한 ejs.filters 는 더이상 사용할수가 없는 기능 이었습니다. 결국 찾아낸 것은 res.locals 에 데이터를 넣어주면 ejs 에서 res.locals의 값을 같이 가지고 간다는 정보였습니다. 따라서 하나하나 테스트 해보기로 했습니다. 먼저 어제의 소스에서 / 라우트는 추가해 줍니다 app.get('/', (req, res) => { res.render('test', { text: r..

    [Node, express, ejs] i18next 써서 국제화 하기 [1]

    i18next 써서 국제화 하기[1] 회사에서의 업무중 페이지를 국제화 시켜야 하는 업무가 생겼다. 여기서 국제화란 한개의 페이지를 여러 국가의 언어로 만들어서 말그대로 국제화 시키는것 을말한다 위와 같이 같은 구글 페이지지만 텍스트가 한글과 영어 버전이 각각 있다. 과거에는 각 언어마다 뷰 페이지를 만들었다고 한다. 즉 영어,한국어가 필요하면 복,붙 으로 2개 페이지 4개의 언어가 필요하다면 복,붙 으로 4개페이지 를 만들었어야 헀다. 당연히 이것은 유지보수에 있어서 끔찍한 결과를 초래한다. 그래서 국제화 라이브러리 들이 생겨났는데 그중에서 나는 i18next 써드파티 모듈을 쓰기로 했다. 쓰기로한 이유는 가장 최신버전을 유지하고있고 각종 프레임워크를 지원하며 공식 documentation 이 비교적 ..