ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] quick nodejs
    Web 2019. 5. 25. 03:03

    NodeJS ?

    구글의 Chrome V8 엔진에서 작동하는 자바스크립트.

    자바스크립트의 런타임환경을 말한다.

    SSS를 위해 WAS용으로 많이 이용하지만 데스크탑어플 등 다양하게 사용가능

     

    다운

    https://nodejs.org/

     

     

    nodejs 버전확인

    node -v

     

     

    nodejs 특징

    - 이벤트기반

    - non-blocking I/O : 비동기처리(콜백). deadlock 걱정X

     

     

    가벼운 실시간 서비스에 적합

     

     

    *nodejs의 설정파일

    파일 설명
    package.json

    프로젝트를 관리하는데 필요한 정보가 들어있음(명세)

    - 프로젝트에 대한 정보

    - 이 프로젝트에서 필요한 패키지버전 및 목록 (패키지는 (뒤에서 설명할) npm으로 설치한 모듈을 말함)

    - 의존성 패키지 버전 및 목록 (특정 패키지를 사용하려면 먼저 필요한 패키지)

    - 명령어 스크립트 기입

    package-lock.json 패키지 의존성 정보
    .env  프로젝트의 환경변수. 이 파일은 공개되어선안된다.
       

     

     


     

    nodejs 프로젝트 생성(=package.json 파일 생성)

    해당 프로젝트 디렉토리에서 명령창에 입력

    npm init

    *npm은 nodejs의 패키지매니저(뒤에서 다룸)

    여러가지 입력할게 뜨는데

    입력 내용은 명령 후 생성할 package.json 파일에 기입됨

     

     

     

     

    프로그램 실행

    node 파일명
    ex) node server.js

     

     

    자주쓰는 프레임워크/모듈

    - express : 라우터등의 여러 서버기능을 간단한 api로 제공

    - fs : 파일입출력

     

    모듈은 패키지 매니저로 관련 패키지를 설치

     

     


     

     

    nodejs 패키지매니저

    패키지관리 도구 (패키지=라이브러리)

    https://www.npmjs.com/   이사이트에 등록된 nodejs 패키지를 관리한다.

    패키지매니저는 이러한 패키지들을 명령어로 다운 및 관리할 수 있다.

     

    npm : nodejs 설치시 같이설치됨. Node Package Manager

    yarn : 페북이만듬

     

     

    npm으로 패키지 관리

     

    프로젝트에서 사용되는 모듈 목록 및 버전확인

    npm ls   //프로젝트에서 사용중인 모듈 목록확인
    npm list
    npm ls -g  //전역 모듈목록
    npm ls 모듈명  //모듈버전확인
    npm view 모듈명 version  //모듈 최신버전확인

     

    패키지 설치

    npm install  //package.json에 명세된 모듈 한꺼번에 설치
    npm install -s 패키지명
    ex) npm i express //express 패키지 설치

    -s 옵션 :  -save의 축약. 패키지 버전을 package.json 파일에 자동 기록. 안써도 적용됨 디폴트옵션

    install은 i로 축약 가능

    -g 옵션 : 패키지 전역설치. 여러프로젝트에서 사용가능(글로벌). 모듈사용시 심볼릭 링크로 사용

     

    npm install만 입력시 package.json 파일에 있는 모듈목록을 전체설치한다.

     

    설치한 모듈은 node_moduls 디렉토리에 저장됨

     

     

    패키지 제거

    npm uninstall 패키지명

    -s 옵션은 디폴트임 package.json 에도 자동 제거

     

     

     

    패키지 업데이트

    npm update -g npm

     

     

    명령어 스크립트 설정

    package.json파일에 기입

     

     


     

     

    yarn 패키지매니저 사용

     

    패키지설치

     

     


     

     

     

    웹서버용 nodejs 서버프로그램 작성

     

     

    http 모듈

    url 모듈

    fs 모듈

     

     

     

     

     

     

    모듈화

     

    nodejs는 CommandJS 라는 스펙을 따른다. 이 스펙중 하나가 자바스크립트의 모듈 api이다.

    exports과 module.exports는 똑같이 module.exports 객체를 반환한다.

     

    1. exports 에 할당

    //myModule.js
    exports.plus = (a,b)=> { return a + b; }
    exports.minus = (a,b)=> { return a - b; }

     

    다른곳에서 require로 module을 불러와 사용가능 

    const dd = require("./myModule.js");
    
    let val1 = dd.plus(2,3);
    let val2 = dd.minus(2,3);

     

     

    2. module.exports 에 할당 

     

    module.exports 에 객체를 할당하면 객체 하나만 할당된다.

    module.exports 여러개 할당했으면 마지막에 호출하여 담은 객체만 export된다.

    자바스크립트는 모든걸 객체로 취급하므로 함수, 배열, 변수 등도 exports 할 수 있다.

    //myModule.js
    const myModule = {
    	sam : "a"
    	ple : "c"
    };
    
    module.exports = myModuleA;

     

    다른파일에서 그것을 쓰려면 require해야한다.

    이때 require 함수가 반환하는것은 해당 디렉토리의 module 객체이다.

    const Modules = require("모듈 경로");
    
    const express = require("express");
    const myModuleA = require("./myModule");

     

    *모듈이 node_modules 폴더에 있으면 경로 생략가능(ex) npm install로 설치한것들)

     

    여러개 담으려면?? module때와 똑같이 레퍼런스로 객체지정 

    // myModule.js
    module.exports.plus = (a,b) => { return a + b; }
    module.exports.minus = (a,b) => {return a - b; }

     

     

    'Web' 카테고리의 다른 글

    사용자 인증(로그인) 방식  (0) 2019.05.27
    [nodejs] express 사용하기  (0) 2019.05.25
    Web Secure Headers  (0) 2019.05.17
    HTTP 개요  (0) 2019.05.13
    웹 취약점/공격기법과 대응  (0) 2019.05.12
Designed by Tistory.