티스토리 뷰

Node.js:
로컬에서 서버 띄우기,node.js와 package.json

| 시작하기에 앞서
  • 노드는 엔진엑스 없이도 배포, 웹서버 역할을 함 
  • 다른건(php) 포팅해줄 다른것이 필요함.

 | 로컬에서 서버를 돌리는 방법


https://developer.mozilla.org/en-US/docs/Learn/Common_questions/set_up_a_local_testing_server 참고

1. python 이용 (폴더 자체를 서버로 돌림)

  • SPA가 등장하면서 folder를 serving 하는게 뜸
# If Python version returned above is 3.X
python -m http.server
# If Python version returned above is 2.X
python -m SimpleHTTPServer

2.node 이용


+ Tip 

아래와 같이 hostname에 내부 ip를 넣어주면 같은 공유기환경이면 모바일에서나 다른 컴퓨터에서나 접속가능한 서버를 만들 수 있음.


const http = require("http");

const hostname = "192.168.0.2" ; // localhost, 127.0.0.1 ...
const port = 3001; //
const server = http.createServer((req, res) => {
// createServer 명령을 통해 서버 한대를 만든다.
res.statusCode = 200; // 통신 성공
res.setHeader("Content-Type", "text/html");
res.end("<button>click!</button>");
});

server.listen(port, hostname, () => {
// 만든 서버가 이 컴퓨터에 리스닝을 하도록 시킨다.
// 첫번째 인자 port는 3000번이고 hostname은 이 컴퓨터의 hostname 같은 것
console.log(`Server running at http://${hostname}:${port}/`);
});


> ip와 port의 차이

  • ip라는건 내 컴퓨터로 도달하게 하는것
  • port는 application 레이어
  • 위에서 볼수있는 내부 ip는 공유기가 가상 ip 를 준것 ex) 192.168.0.2

| package.json


공식 docs: https://docs.npmjs.com/files/package.json

  • Browserify와 더 최근에는 webpack이 CommonJS의 Node 버전을 브라우저로 가져옴으로써 모듈 문제를 잘 해결했다. 그 결과 Node/npm JavaScript 모듈 생태계는 서버와 클라이언트 모두에 적용되었고 빠르게 성장하고 있다.
  • package.json 덕분에 프로젝트 자체를 모듈처럼 생각한다.
  • 바벨이나 es-lint를 package.json에서 자기 스펙처럼 쓴다.
  • 노드는 폴더자체를 모듈로 본다. ( 폴더를 require하면 기본으로 index.js 를 불러옴)
  • 폴더안에 package.json을 넣어 main값에 특정 js파일을 넣어주면 그 폴더를 require 할때 그 js파일을 본다. (알맞게 커스터마이징)
  • resolve (어떤 파일을 실행할거냐에 대한 판단) 에 대한 노드만의 기준 들어가 있다.
  • rollup => 한 코드를 여러개로 분리, 폴더 default로 index.js를 읽는것을 지원 안함 (이건 노드만의 spec) => 라이브러리에많이쓰임

> files
  • files라는것안에 써주면 npm에는 올라가지만, 깃에는 안올라감 (.gitignore의 반대개념)

> dependency

  • 사용자들이 써야하는건 dependency
  • 개발자들이 써야하는건 devDependency


'Back end > Node.js' 카테고리의 다른 글

Node.js - forEach with delay  (0) 2018.04.12
Node.js -Promise (재고 부족 메시지 개선)  (0) 2018.02.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
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
글 보관함