본문 바로가기

Node.js

[Node.js] CommonJS 모듈 1. 모듈 만들기 모듈을 만들 때는 모듈이 될 파일 과 모듈을 불러와서 사용할 파일이 필요함 1) 모듈이 될 파일 var.js - func.js와 index.js 에서 재사용됨 const odd = "홀수입니다."; const even = "짝수입니다."; // module.exports에 변수들을 담은 객체를 대입하여 module.exports = { odd, even, }; 2) 모듈이 되기도하면서 모듈을 불러오는 파일 func.js - var.js를 모듈로 불러오고 자기 자체도 index.js의 모듈이 됨 const { odd, even } = require("./var"); function checkOddOrEven(num) { if (num % 2) { return odd; } return ev.. 더보기
[Node.js] 모듈 1. 모듈이란? 특정한 기능을 하는 함수나 변수들의 집합 모듈은 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로도 사용할 수 있음 모듈로 만들어두면 여러 프로그램에서 해당 모듈을 재사용할 수 있음 보통 파일 하나가 모듈 하나가 되며, 파일별로 코드를 모듈화할 수 있어 관리하기 편함 2. 모듈의 형식 노드에서는 CommonJS 모듈, ECMAScript 두 가지 형식의 모듈을 사용 1) CommonJS 모듈 표준 자바 스크립트 모듈은 아니지만 널리 쓰이는 모듈(표준이 나오기 이전부터 쓰였기 때문에) https://k-sky.tistory.com/683 더보기
[Node.js] 노드에서 파이썬 파일 구동하기 Node.js 에서 제공해주는 child process를 이용해서 파이썬 파일을 실행 spawn은 Node.js의 child_process 모듈에서 제공하는 함수 중 하나로 새로운 프로세스를 생성하고 해당 프로세스를 다른 프로그램을 실행하는데 사용하는 중요한 메서드 spawn 함수를 사용하면 Node.js에서 다른 프로그램을 실행하고 그 결과를 처리할 수 있음 spawn 함수를 호출하면 새로운 자식 프로세스가 생성되며 이 프로세스는 백그라운드에서 실행됨, 생성된 자식 프로세스와 상호 작용하려면 'childProcess' 객체를 사용할 수 있으며 이 객체는 stdout, tdin stderr 스트림 및 다양한 이벤트를 제공함 spawn 함수의 형식 command: 실행할 프로그램 또는 명령어의 이름, 예를.. 더보기
[Node.js] realm 실습 npm 모듈 추가 cf. npm5부터는 --save 옵션을 기본 옵션으로 적용하게 되었음, save를 사용하지 않아도 dependenies에 항목을 추가하게됨 => --save옵션은 더이상 쓰지 않아도 기본으로 사용되는 기능으로 생략 가능 api 서버 실습 데이터 생성, 조회 api 코드 index.js 스키마(모델) 정의 realm.js realm을 통해 저장하면 프로젝트 폴더 내부에 아래와 같이 저장됨 post 테스트 get요청(데이터 조회) post 요청(데이터 생성) 더보기
[Node.js] SQLite 데이터를 MariaDB로 마이그레이션하기 SQLite 데이터베이스 파일을 읽기 위한 sqlite3 모듈 설치 sqlite 데이터를 조회해 오는 코드 작성 조회한 데이터를 마리아디비로 마이그레이션하기 위해 mysql2 모듈 설치 데이터베이스 연결 모듈 sqlite조회하고 mariadb 에 마이그레이션 (sqlite테이블 스키마 조회, mariadb 테이블생성, sqlite 데이터 조회, mariadb 데이터 삽입 모듈로 분리 예정) const express = require("express"); const router = express.Router(); const sqlite3 = require("sqlite3").verbose(); // verbose() 메서드를 사용하여 더 많은 디버깅 정보 출력 const mysql = require("my.. 더보기
[Node.js] 노드에서 시퀄라이즈(Sequelize)로 db다루기 시퀄라이즈(sequelize) ORM(Object-relational Mapping)으로 분류됨 ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문에 DB 다루기가 쉬워짐 시퀄라이즈, 시퀄라이즈 명령어 실행을 위한 sequelize-cli, mariadb드라이버 설치 시퀄라이즈 초기화 config, models, migrations, seeders 폴더가 생성됨 model폴더안의 index.js mariadb와 연결하기 시퀄라이즈를 통해 익스프레스 앱과 연결 mariadb와 연동할 때 config 폴더안의 config.json 정보가 사용되기 때문에 정보를 입력해줌 노드 서버 시작 config 파일에 비밀번호 임의로 다르게 넣어서 연결실.. 더보기
[Node.js] Express 프로젝트 만들기 1. express-generator 설치 npm: Node Package Manager의 줄임말로 Node.js 패키지를 관리하는 도구 i: install -g: 패키지를 전역으로 설치하라는 옵션, 전역으로 설치하면 해당 패키지가 시스템 전체에서 사용됨 express-generator: Express.js 애플리케이션을 생성하기 위한 공식 생성기 패키지 2. express 프로젝트 만들기 express {프로젝트이름} 3. 생성된 프로젝트로 이동 후 필요한 패키지 설치 프로젝트의 package.json 파일에 명시된 종속성(dependencies)들이 설치됨 4. 프로젝트 실행 package.json 파일에서 scripts 섹션을 찾아보면 start 스크립트를 볼 수 있음 일반적으로 start 스크립트.. 더보기
[Node.js] http 모듈로 웹서버 만들기 1. 요청과 응답 이해하기 - 클라이언트에서 서버로 요청(request)을 보내고, 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에게 응답(response)를 보냄 - 클라이언트로부터 요청이 왔을때 어떤 작업을 수행할지 이벤트 리스너를 만들어 놓아야 함 ① http 서버가 있어야 웹브라우저 요청을 처리하므로 http 모듈 사용 ② createServer메서드 - 인자로 요청에 대한 콜백 함수를 넣을 수 있음 - 요청이 들어올 때마다 콜백 함수 실행, 따라서 이 콜백 함수에 응답을 적어주면됨 - 콜백함수의 인자로 요청에 관한 정보를 담는 req, 응답에 관한 정보를 담는 res 가 들어감 - res.write의 첫 번째 인자는 클라이언트로 보낼 데이터 - res.end는 응답을 종료하는 메서드로 인자.. 더보기