Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JS Coding

[Node.js] Node.js 입문자 초기 세팅 본문

JavaScript

[Node.js] Node.js 입문자 초기 세팅

JSKJS 2024. 4. 5. 00:36

node.js  간단 이론 요약

https://wikidocs.net/225092  웹사이트 참고 

 

1. node.js 설치

 

https://nodejs.org 

 

Node.js — Run JavaScript Everywhere

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

버전은 nvm 설치하면 원하는 버전으로 다운로드,세팅, 삭제 까지 가능하니 사용하면 유용하다.

 

 

 

접속하면 메인화면이 나오는데 바로 앞에 다운로드 버튼이 나온다. 클릭하여 다운로드를 순차적으로 진행한다.

 

다운로드가 완료 되었다면 자바와 다르게 환경변수 세팅이나 하지 않는다.

 

** 단! mac 을 사용하는 개발자라면 환경변수 세팅을 해야한다.

 

우선 window로 진행 해본다.

 

다운로드가 완료 되었다면 시작 메뉴에서 cmd 입력 enter를 치거나 명령 프로토콜을 열어서 

 

" node version , node -v 를 입력하여 다운로드가 되었는지 체크 한다.

 

 

이렇게 버전에 대한 정보가 나올 것이다.

 

그 다음에 VScode를 설치

 

다른 IDE를 사용하여도 되지만 VScode로 사용하는것을 추천한다. ( 대다수가 사용)

 

 

 

설치된 node.js 를 실행 시키면 명령창이 뜨는데

 

여기서도 가능하지만 VScode의 터미널을 열어 사용하는게 더욱 직관적이고 프로그램 개발에 유용하다.

 

여기서는 필요한 라이브러리를 install 해보자.

 

초기에 세팅을 해야 할게 있는데 

 

첫번째로 package.json 이다

> npm init #내용을 직접 쓰라고함
> npm init -y #폴더명을 기준으로 자동생성
Wrote to /Users/jimny/project/node_test/package.json:

{
  "name": "node_test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js", -> app.js 로 수정                                                                                       
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

 

순서대로 입력하여 진행 하면 되는데 

 

npm init 를 실행하면 입력 하라고 나오는데 순서대로 입력 해주면 된다.

 

그 이후에 express를 install를 해주는데

 

npm install express

 

express는 함수나 프로그램 메서드 등등을 실행시켜주는 역할을 한다고 생각하면 된다.

 

 

npm install nodemon

 

nodemon 은 소스가 바뀔때마다 노드를 재실행 해주는 역할을 한다.  중요하다.

 

그리고 해야 할게 app.js 작성과 .env 작성하고 세팅하는 건데

 

java의 spring을 생각하면 bulild.gradle / maven-pom 등 과 application.properties를 세팅하는거와 같은 느낌이다.

 

 

const express = require('express');
const morgan = require('morgan');
const cookiParser = require('cookie-parser');
const session = require('express-session');
const dotenv = require('dotenv');
//설치한 미들웨어 및 모듈  불러오기

dotenv.config();
const app = express();
app.set('port',process.env.PORT || 3000);
//app.set('port,포트) : 서버가 실행될 포트 설정

app.use(morgan('dev'));
app.use('/',express.static(path.join(__dirname, 'public')));
app.use(express.json());
app.use(express.urlencoded({ extended: false}));
app.use(cookiParser(process.env.COOKIE_SECRET));
app.use(session({
    resave: false,
    saveUninitialized: false,
    secret: process.env.COOKIE_SECRET,
    cookie: {
        httpOnly: true,
        secure: false,
    },
    name: 'session-cookie',
}));

app.use((req, res, next) => {
    console.log('모든 요청에 다 실행됩니다.');
});

app.get('/',(req,res)=>{
    res.send('Hello, Express');
});
/*app.get(주소, 라우터) : 주소에 대한 GET요청이 올 때 어떤 동작을 할지 적는 부분
ex) app.post, app.patch, app.put, app.delete, app.options
express에서는 http와 다르게 res.write, rew.end 대신 res.send 사용
**/

app.listen(app.get('port'),()=>{
    console.log(app.get('port'),'번 포트에서 대기 중');
});

 

주석과 함께 app.js 예시를 들어놨다.