본문 바로가기

728x90

기타/node js

(32)
nodejs async each()으로 효율적으로 데이터 처리하는 법 오늘은 nodejs의 async 모듈의 each() 함수를 통해 효율적으로 데이터 배열을 처리하는 방법에 대해 알아보도록 하겠습니다. 어떤 패키지든 가장 중요한 것은 공식문서를 확인하는 것입니다. 공식 문서를 함께 살펴보도록 하지요. caolan.github.io/async/v3/docs.html#filterLimit async - Documentation import applyEach from 'async/applyEach'; Applies the provided arguments to each function in the array, calling callback after all functions have completed. If you only provide the first argument, f..
nodejs bluebird 콜백함수 탈출 패키지 블루버드는 promise의 구현체입니다. promise 객체는 모두 then()메소드를 갖고 있습니다. 콜백함수 대신 then을 사용할 수 있게 되지요. then의 장점은 동기처리를 비동기처리로 바꿀 수 있고 try catch처럼 코드를 길게하는 것을 .catch로 대체할 수 있다는 것입니다. npm install bluebird 우선 패키지를 다운로드 해야 합니다. const fs = require("fs"); fs.readFile("message.txt", (err, data) => { if(err) throw err; console.log(data); }); const Promise = require("bluebird"); const fs = Promise.promisifyAll(require("f..
node js 모듈화하기 open-graph-scraper사용 오늘은 nodejs에서 모듈화를 하는 이유와 하는 방법을 알아보고 재미있는 예제를 해보도록 하겠습니다. 모듈화는 왜 해야 하는 것일까요? 코딩을 하다보면 코드가 매우 복잡해지고 길어지는 경우가 있습니다. 코드가 몇천 줄 되면 오류가 발생했을 때 오류를 수정하는데 오랜 시간이 걸립니다. 어디서부터 어떻게 고쳐야 할지 감이 안 오니까요? 이런 문제를 사전에 방지하기 위해 모듈화를 하는 것입니다. 각 프로세스마다 모듈을 분리해 역할 별로 묶어두면 문제가 발생했을 때 수정이 편하고 가독성 또한 좋아집니다. 모듈화를 하는 이유는 코드의 복잡성을 낮추고 가독성을 높이는 데 있습니다. 모듈화를 예제를 통해 알아보도록 하겠습니다. 오늘 진행할 예제를 우선 소개해드리도록 하겠습니다. 카카오톡에 url주소를 보내면 아래 ..
node.js mysql Transaction(트랜잭션) 사용법과 한계점 오늘은 nodejs에서 mysql 트랜잭션을 사용하는 방법과 그 한계점에 대해 알아보도록 하겠습니다. 우선 mysql트랜잭션이 정확히 어떤 것인지 알아보겠습니다. 트랜잭션이란 쪼개지면 안 되는 업무처리의 단위를 의미합니다. 계좌이체를 생각해보죠. A가 B에게 100만원을 보낸다고 했을 때 A의 통장에서 100만원을100만 원을 뺀 후 따로 B의 통장에서 100만 원을 더하는 프로세스는 어떤 문제가 있을까요? 만약 A의 통장에서 100만원을 뺀 직 후 프로세스가 중단되었다면 100만 원은 소멸되고 말 것입니다. 두 가지 명령은 반드시 같이 처리되어야 합니다. 이러한 프로세스를 처리하는 것을 트랜잭션이라 부릅니다. 트랜잭션에는 두 가지의 결괏값이 존재합니다. 롤백과 커밋이 바로 그것인데요. 롤백은 부분 작업..
nodejs와 mysql연동하는 방법 오늘은 nodejs에서 mysql을 사용하는 방법에 대해 알아보도록 하겠습니다. mysql 데이터베이스를 설치하는 과정이나 mysql을 사용하는 방법이 아닌 nodejs와 mysql을 연동하는 방법에 대해서 다루겠습니다. 아래와 같이 기본적인 설정을 진행합니다. //필요한 모듈을 불러옵니다. //다운로드하지 않았다면 npm i mysql을 사용해서 다운로드 해주셔야 합니다. const mysql = require('mysql') //mysql서버와 연결하기 전 필요한 정보들을 초가화 해줍니다. //ip주소와 이름, 비밀번호, 가져다쓸 데이터 베이스 이름 const connection = mysql.createConnection({ host: '127.0.0.1', user: 'test', password..
Nodejs 단방향 암호화 예제 단방향 암호화는 암호화한 것을 복호화, 원래대로 되돌리는 것이 불가능한 암호화입니다. 단방향 암호화로 데이터를 저장하면 원래 데이터는 db에 남아있지 않습니다. 로그인 시 입력받은 비밀번호를 같은 방식으로 암호화한 후 db에 있는 비밀번호와 비교하기 때문입니다. 보안에 있어서 양방향 암호화보다 뛰어납니다. 원래 데이터를 찾을 수 없으니 키값을 알더라도 비밀번호를 알아내는 것은 힘듭니다. 보통 SHA1, SHA2방식으로 자주 사용됩니다. 이런 정해진 방식을 따르면 어떤 서버, 데이터 베이스에서 생성된 암호라 하더라도 데이터와 키값이 같다면 암호가 같습니다. 아래 예제를 통해 알아보도록 하겠습니다. npm i crypt를 통해 패키지를 다운로드해주세요. crypt는 다양한 방식의 암호화를 도와줍니다. 전 시..
node js 양방향 암호화 예제 암호화에는 크게 두 가지 방법이 있습니다. 단방향 암호화와 양방향 암호화입니다. 단방향 암호화는 암호화된 것을 다시 원래 문자열로 돌려놓을 수 없고 양방향은 가능합니다. 암호화한 것을 다시 원래의 형태로 보기 위해서는 양방향 암호화를 해야 합니다. 오늘은 nodejs에서 양방향 암호화 하는 방법에 대해 알아보도록 하겠습니다. 필요한 모듈은'crypto-js'입니다. npm i crypto-js를 통해 패키지를 다운로드해주세요. 그런 후 const Crypto = require('crypto-js') 패키지를 가져와 변수해 저장해줍니다. 두 가지 함수를 만들어야 합니다. 하나는 암호화해주는 함수 다른 하나는 암호화한 것을 원래대로 돌려놓는 함수입니다. encrypt(data,key){ return Cryp..
node js express 쿼리스트링과 path방식 데이터 가져오기 오늘은 nodejs express에서 쿼리 스트링을 통해 데이터를 서버로 보내는 방법과 path를 통해 보내는 방법에 대해 알아보도록 하겠습니다. 1.쿼리스트링 쿼리 스트링이란 사용자가 입력 데이터를 전달하는 방법 중 하나로 이전에 협의된 파라미터에 데이터를 담아 보내는 방법입니다. 예를 들어 서버에서 파라미터 t에 담긴 데이터를 받기로 했다면 url 주소에 ?t=데이터 이렇게 입력해주면 됩니다. 예시를 통해 한 번 확인해 보죠. 우선 test.json 파일을 아래 와같이 준비해주세요. { "id":123, "name":"lim" } 아래 코드를 작성합니다. const express = require('express') const app=express() const testjson = require('...

728x90