NodeJS
-
nodejs port forwarding 처리NodeJS 2019. 7. 9. 00:24
nodejs port forwarding 처리 https를 설정하고 나니, 기존 80 포트로 요청이 있을 경우, 443으로 redirect 하는 방법을 찾아보았다. 구글을 확인해보니, 다음과 같이 쉽게 처리 할 수 있었다. // Redirect from http port 80 to https var http = require('http'); http.createServer(function (req, res) { res.writeHead(301, { "Location": "https://" + req.headers['host'] + req.url }); res.end(); }).listen(80);구글과 함께면 뭐든 쉽다. 참조 링크 Automatic HTTPS connecti..
-
puppeteer에서 POST로 요청 날리기NodeJS 2019. 7. 7. 00:23
puppeteer에서 POST로 요청 날리기 puppeteer에서 request를 POST로 요청 하기 위해서는 다음과 같은 설정을 해야 합니다. await page.setRequestInterception(true); // create a flag to only modify the initial request let reformatFirstRequest = true; page.on('request', interceptedRequest => { if (reformatFirstRequest) { console.log('first-request'); reformatFirstRequest = false; interceptedRequest.continue({ method: '..
-
nodejs를 이용하여 web push 몇가지 주요 사항NodeJS 2019. 7. 6. 00:22
web push 구현하기 web push를 구현하기 위해서 web-push라는 모듈을 사용해야 한다. 구현 방법은 Sending Web Push Notifications from Node.js을 참고 하면 된다. (추후 시간을 내어 코드를 정리해보려고 한다.) 오늘은 일단 중요한 몇가지 사항을 공유 하려고 한다. windows에서는 알람을 활성하 해두어야 알람을 받을 수 있다. 실제 서비스는 https만 가능하며, 인증서 또한 공식 인증서를 이용해야 된다. subscription 정보를 잘 관리 하면 계속 상대방이 차단하기 전까지 계속 알람을 보낼 수 있다. 동작 원리는 worker를 등록하여 상대방에게 push를 한다. 일단 오늘은 여기까지!!! 참조 링크 Sending Web Push Notifica..
-
Async 모듈을 이용한 비동기 처리NodeJS 2019. 5. 26. 14:46
얼마전 Node에서 비동기 처리를 순서대로 처리해야 하는 일이 있었다. 구글을 검색하다 async.waterfall in a For Loop in Node.js을 찾았다. var async = require("async") var users = []; // Initialize user array or get it from DB async.forEachLimit(users, 1, function(user, userCallback){ async.waterfall([ function(callback) { callback(null, 'one', 'two'); }, function(arg1, arg2, callback) { // arg1 now equals 'one' a..
-
nodejs에서 request Body에 json 처리 & body 크기 제한NodeJS 2019. 2. 6. 16:29
Express에서 post호출 시 request의 body에서 undefined가 발생한다.다음과 같이 호출 했는데 결과가 undefined일 경우는 body-parser를 설정하지 않아서 이다.# post 호출시, body에 {test:'hello"} 를 함께 전송 #router 소스 router.post('/', (req, res) => { console.log(req.body); undefined 발생 res.redirect('/'); }); 처리 방법은 body-parser를 express에서 사용하도록 설정 하면된다.# body-parser 설치 $> npm install --save body-parser #app.js 소스 const express = require('express'); con..
-
Node 모듈 설치시 오류시 해결 방법NodeJS 2019. 2. 6. 16:29
Node 모듈 설치시 오류시 해결 방법node 버젼이 변경된 상태에서 npm install을 하면, 오류가 발생하는 경우가 있다.이럴때 해결 방법은 정말 단순 하다.해당 모듈을 삭제 하고 재설치 한다.npm install #oracle-db 모듈 오류발생 #oracle-db 모듈 삭제 npm uninstall oracle-db #oracle-db 모듈 설치 npm install --save oracle-db 컴터 동작이 이상하면 재기동 하면 되듯이, 모듈도 재설치 하면된다.
-
pm2 cluster mode 특징NodeJS 2019. 2. 6. 16:29
pm2 cluster mode에서는 session이나 websocket이 동작 하지 않는다.pm2에서 제공하는 클러스터 모드는 코드의 수정 없이 CPU를 확장할 수 있다. Node.js 클러스터 모듈을 사용하여 확장 된 응용 프로그램의 하위 프로세스가 자동으로 서버 포트를 공유 하도록 하는 기능이다.사용법은 다음과 같다.# -i 옵션이 cluster 모드이며, max는 사용할 CPU 수를 입력 하면 된다. # 0을 입력하면, 자동으로 모든 CPU 숫자만큼 클러스터가 생성된다. pm2 start app.js -i max 또는 js/yaml/json 파일을 통해서 설정을 할 수 있다.{ "apps" : [{ "script" : "api.js", "instances" : "max", "exec_mode" : ..
-
Vuejs를 express로 배포 후 vuejs route 동작 처리NodeJS 2019. 2. 6. 16:28
Vuejs 배포시 route 동작 처리vuejs에서 express로 배포하는 방식을 기존에 설명 했었다.문제는 vuejs route에 주소를 직접 치고 들어가면 404 오류가 발생하였다.express쪽에서 기본적인 요청은 vuejs의 route를 바라보게 하고 싶어서 검색을 해보니, Routes not working in production라는 글을 확인 하였다.처리 방법은 express에 마지막 부분에 다음 코드를 추가 하면 된다. index.html은 vuejs를 배포한 위치이다.app.get('*', (req, res) => { res.sendFile(`${__dirname}/public/index.html`); }); vuejs도 잼나네!참고 자료Routes not working in produc..