본문 바로가기

Javascript/Node.js14

pm2를 이용하여 Node.js 서버를 더 쉽게 관리하기 아래의 블로그에 pm2 설정에 대해 자세히 설명 되어 있다. https://medium.com/harrythegreat/pm2-node-js-%EC%84%9C%EB%B2%84%EB%A5%BC-%EB%8D%94-%EC%89%BD%EA%B2%8C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-2-d03f6396139f 2019. 4. 19.
node.js ejs 템플릿 사용시 에러 문구 node.js ejs 템플릿 사용시 에러 문구가 나는때가 있다.이러한 에러문구를 다른 페이지로 대체해주는 방법이 아래의 링크에 나와있다. https://okky.kr/article/370574 그냥 error.ejs 파일만 view 디렉토리 안에 추가해주면 된다.허무하네.. 2019. 3. 25.
이미지를 포함한 form 데이터를 s3에 저장하는 방법 나는 이전에 이미지 저장을 위해서 node.js multer 라이브러리를 써주었었다.하지만 이번에 이미지를 s3로 저장해야하는 방향 전환으로 인해 multer-s3라는 라이브러리를 접하게 되었다. 하지만.. 하지만.. multer-s3는 동작하지 않았고, 우리 회사와 같이 협약을 맺고 있는 업체에게 물어 보았지만 그쪽에서도 안된다고 답변이 올 뿐이었다.결국 나는 multer를 버릴수밖에 없었다.. 그래서 나는 처음으로 돌아와 이미지가 포함된 form 데이터를 어떻게 받을 것인지 생각할 수 밖에 없었고 대안을 찾아냈다.바로 formidable 라이브러리이다.해당 라이브러리를 통해 s3에 이미지를 쉽게 올리는 방법은 아래를 참고하길 바란다.물론 fs 함수를 써서 그냥 로컬로 저장도 된다. https://op.. 2019. 2. 27.
node.js의 res.locals 함수 node.js로 페이지 렌더링을 하게 되면 중복되는 값들이 있다.이 값들을 한꺼번에 처리할 수 있는 함수가 바로 res.locals 이다.해당 함수를 쓰면 렌더링시 중복되는 값들을 저장해놓고 계속해서 쓸 수 있다.자세한 사항은 아래의 링크를 참조하면 된다. https://stackoverflow.com/questions/29026650/how-to-render-common-variables-from-app-js-to-all-routes-in-express 이것을 안쓰면 렌더링시 중복되는 값들을 모두 복붙하는 노가다를 해야한다.최근 최신프론트엔드를 쓰면서 이 함수를 쓸 필요성이 사라졌지만 나중을 위해 알아두어야 겠다. 2018. 7. 23.
아마존 ELB 기반 서비스 사용시 node.js에서 http 주소로 접근시 https로 변환 현재 일하고 있는 곳에서 아마존과 협업하여 시스템을 개발중에 있다.최근 개발중인 앱을 아마존 서버에 올렸는데, http로 접근했을때 https로 변환해주는 기능을 구현해야했다.아마존 관계자분께서 node.js 내의 코드를 수정하면 쉽게 해결된다고 하여 보내주신 링크 문서를 보았다.결론적으로 해결했는데 코드는 아래와 같다. app.get('*', function(req, res, next) {//http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto if (req.get('x-forwarded-proto') != "https") { res.set('x.. 2018. 3. 20.
node.js 이미지버퍼 작업후 저장시 주의할 점 최근 fs 모듈로 jpg 이미지를 불러와 jpeg-js 모듈의 decode 함수를 이용해 이미지버퍼를 추출하고,픽셀배열 작업후에 encode라는 함수를 이용해 인코딩 해준후 다시 fs 모듈을 통해 jpg 이미지로 저장하는 작업을 해보았다.아래는 jpeg-js 모듈 링크이다. https://github.com/eugeneware/jpeg-js 문제는 픽셀작업후 저장되는 이미지에 색 오류가 발생했다는 점이었다.노이즈 색상이 자꾸만 끼어있었다.왜그런지 이유를 찾는데 이틀이 걸렸다.. 문제는 매우 간단했다.이미지버퍼값들중 소수점 값 및 255를 넘어가는 값이 섞여있었다.이럴경우 jpeg 모듈을 통해 encode 할 경우 당연히 결과에 오류가 있을수 밖에 없었다.매우 간단한 사실이지만 항상 이미지를 encode .. 2017. 12. 4.
node.js에서 promise 함수를 동기화로 만들기 js에서 promise 함수는 일반적으로 비동기 함수다.하지만 최근 node.js에서 promise 함수를 동기로 써줄일이 생겼다.처음엔 promise 함수를 실제 함수로 변형해 보려고 했지만 그 구조를 정확히 몰랐기에 반환값이 자꾸만 이상하게 날라왔다..결국 npm 모듈을 찾아보았더니 해당 sync-promise라는 동기화 모듈이 존재했다.(흠.. 빨리 찾을껄 1시간 반을 날려먹었다..) 여튼 아래 링크에 쓰는 방법이 잘 나와 있으니 참고하길 바랍니다. https://www.npmjs.com/package/sync-promise 2017. 11. 21.
node.js 에서 주의해야 할점 response.end() 로 값을 보낼때는 반드시 안의 파라메터가 string이어야 한다.그래야 오류가 나지 않는다.간단하지만 이것때문에 최근에 약간의 시간을 낭비했다. 그리고 참고로 string으로 보내기 싫으면 response.send()를 쓰면 된다. 2017. 5. 20.
node.js 파일을 업로드하고 해당 파일을 서버에 저장하는 방법 최근 사이트에서 회원들의 프로필 사진을 업로드 하여 서버에 저장하는 기능을 구현하는 작업이 필요했다.조금 부끄럽지만 이전에 업로드 기능을 사용해본적이 없기에 이번에 그 기능을 구현하느라 조금 고생을 하였다.생각외로 방법은 간단하였다. https://www.youtube.com/watch?v=2jwNNFbs4ic 자세한 방법는 본 동영상에 잘 설명되어 있다.물론 방법은 잘 설명되어 있지만 실제 해보게 되면 여러가지 난관에 부딫히게 된다. 첫번째 난관은 어떻게 업로드 파일의 데이터를 받아올 것인가에 대한 문제였다.동영상에서는 form 형식 안에서 submit 이벤트가 발생할때 그에 따라 데이터를 보내주지만나는 따로 만들어준 특정 버튼을 클릭했을때 데이터를 보내주게 만들었다. 문제는 전자는 알아서 데이터 형식.. 2017. 5. 15.