-
[Web] quick nodejsWeb 2019. 5. 25. 03:03
NodeJS ?
구글의 Chrome V8 엔진에서 작동하는 자바스크립트.
자바스크립트의 런타임환경을 말한다.
SSS를 위해 WAS용으로 많이 이용하지만 데스크탑어플 등 다양하게 사용가능
다운
nodejs 버전확인
node -vnodejs 특징
- 이벤트기반
- 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