본문 바로가기

Web development/Node.js & Typescript22

Error: listen EADDRINUSE: address already in use :::3001 Error: listen EADDRINUSE: address already in use :::3001 서버를 띄웠을때 이런 에러 메시지가 뜨면, 같은 포트에 종료안한 서버가 띄워져있어서 그런 것이다. 포트를 바꾸거나 터미널에서 찾아서 kill 하면 된다. $ lsof -wni tcp:3001 // 현재 3001 포트에 실행중인 내용을 보여준다. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 16426 effy 22u IPv6 - 0t0 TCP *:redwood-broker (LISTEN) $ kill 16426 // kill [PID] 명령어 설명 lsof(LiSt Open Files) : 현재 시스템에 열려있는 파일, 그 파일을 사용중인 프로세스 목.. 2020. 2. 5.
Express의 오류 처리 http://expressjs.com/ko/guide/error-handling.html Express 오류 처리 오류 처리 다른 미들웨어 함수와 동일반 방법으로 오류 처리 미들웨어 함수를 정의할 수 있지만, 오류 처리 함수는 3개가 아닌 4개의 인수, 즉 (err, req, res, next)를 갖는다는 점이 다릅니다. 예를 들면 다음과 같습니다. app.use(function(err, req, res, next) { console.error(err.stack); res.status(500).send('Something broke!'); }); 오류 처리 미들웨어는 expressjs.com Express Document를 읽고 알게 된 사항을 정리함. app.use와 app.post 등등의 차이점 ap.. 2020. 1. 31.
map 안에서 async/await 사용시 Promise가 리턴되는 문제 const arr = [1,2,3,4]; const result = arr.map(async (item) => { await sampleFunction(item); }) function sampleFunction(item) { return item + 1; } console.log(result); // [2, 3, 4, 5]를 리턴할 것 같지만 /** [ Promise { }, Promise { }, Promise { }, Promise { } ] 를 리턴한다. */ map 안에서 async/await을 사용했을 때, return값으로 Promise { pending } 이 들어오는 문제가 생긴다. .map은 내부적으로 단순하게 아래 코드와 같다고 생각하면 된다. const result = []; for.. 2020. 1. 23.
[Javascript] 특정 문자열 잘라내기 특정 문자열을 잘라내야 할 경우가 있다. 예를 들면, 메일의 자동 발송을 고려하여 고객명을 아래와 같이 DB에 저장해두었다고 하자. 홍길동 부장님 귀하 홍길동 귀하 홍길동님 귀하 이런식으로 작성하다가, 자동으로 템플릿에 귀하를 추가해주게 된 것이다. 그러면 기존 데이터의 귀하를 제거해야 한다. 그런 경우 아래와 같이 해주면 const arr = ['홍길동 귀하', '홍길동 부장님 귀하', '홍길동님 귀하'] for (item of arr) { const index = item.indexOf(' 귀하'); if (index > 0 && index+3 === item.length){ // '귀하'가 존재하고, 가장 마지막에 있을 때만 const result = item.slice(0, -3); console.. 2020. 1. 23.