Node.js는 apache와 다르게 특정 경로에서 설정과 소스코드를 수정하는게 아니라 내가 만든 경로에 모듈과 설정, 소스코드들을 위치하고 서버를 실행하게 됩니다.


먼저 폴더를 하나 만들고 그 안에 app.js 라는 이름으로 자바스크립트 파일을 하나 만듭니다.

그리고 app.js에 서버가 될 수 있도록 소스코드를 넣도록 하겠습니다. 

https://nodejs.org/en/about/

const http = require('http');

const hostname = '127.0.0.1';
const port = 1337;

http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello World\n');
}).listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
app.js 파일을 저장하고 실행해보겠습니다.

폴더 경로로 이동하고 node app.js 를 입력합니다.

아래와 같이 서버가 실행 됐다고 하면 정상 작동 중입니다. 

$ node app.js

Server running at http://127.0.0.1:1337/

브라우저를 키고 http://127.0.0.1:1337/ 를 입력하면 Hello World 라고 나오는걸 확인할 수 있습니다.


만약 포트를 80포트로 설정할 경우 아래와 같은 에러를 출력하게 됩니다.

events.js:141

      throw er; // Unhandled 'error' event

      ^

Error: listen EACCES 127.0.0.1:80

    at Object.exports._errnoException (util.js:874:11)

    at exports._exceptionWithHostPort (util.js:897:20)

    at Server._listen2 (net.js:1221:19)

    at listen (net.js:1270:10)

    at net.js:1379:9

    at doNTCallback3 (node.js:452:9)

    at process._tickCallback (node.js:358:17)

    at Function.Module.runMain (module.js:469:11)

    at startup (node.js:136:18)

    at node.js:963:3

그럴 땐 sudo 를 붙여서 실행하면 정상 작동합니다.

$ sudo node app.js


반응형

+ Recent posts