웹사이트 검색

Linux에서 첫 번째 Node.js 앱을 작성하는 방법


웹 개발 트렌드는 지난 몇 년간 급격하게 변했습니다. 웹 개발자로서 최고의 자리에 오르려면 최신 기술을 계속해서 업데이트하는 것이 중요합니다.

자바스크립트는 현재 인기 있는 프로그래밍 언어입니다. 이는 의심할 여지 없이 풀 스택 개발자가 사용하는 가장 인기 있는 기술입니다.

JavaScript 웹 프레임워크는 절대적인 효율성, 안전성 및 비용 최소화로 웹 개발 속도를 높이는 마법의 솔루션이 되었습니다. 여러분은 Node JavaScript(일반적으로 Node.js 또는 간단히 Node라고 함)에 대해 들어보셨을 것입니다. 이에 대해 많은 소문이 있습니다. 인터넷에서.

이 기사에서는 Linux에서 Node.js를 사용하여 JavaScript에서 애플리케이션 개발을 시작하는 방법을 보여 드리겠습니다. 하지만 먼저 Node.js에 대해 간략하게 소개하겠습니다.

Node.js란 무엇입니까?

Node.js는 Chrome의 V8 JavaScript 엔진을 기반으로 구축된 가볍고 효율적인 오픈 소스 JavaScript 런타임입니다. 이는 스레드(단일 스레드) 없이 설계되었으며 Ruby 프로그램용 이벤트 처리 라이브러리인 Python 또는 Event Machine을 사용하여 구축된 네트워킹 엔진인 Twisted와 유사한 구현을 가지고 있습니다.

Node.js의 핵심은 이벤트 중심 프로그래밍을 기반으로 합니다. 그러므로 프로그래머는 어떤 이벤트가 이용 가능하고 어떻게 대응해야 하는지 이해해야 합니다.

Node.js에서의 패키지 관리

Node.js는 방대한 무료 오픈 소스 라이브러리 컬렉션을 포함하는 'npm '이라는 JavaScript 패키지 관리자와 생태계를 사용합니다. 모듈형 소프트웨어 개발을 지원합니다. 이를 사용하여 노드 패키지를 설치하고, 코드를 공유, 배포하고, 패키지 종속성을 관리할 수 있습니다.

Node.js가 중요한 이유는 무엇입니까?

Node.js는 다음과 같은 이유로 강력하고 중요합니다.

  • 이는 비동기식 이벤트 중심의 비차단 I/O 실행 모델을 사용하여 애플리케이션의 처리량을 향상시키고 실제 웹 애플리케이션에 대한 확장성을 지원합니다.
  • 단일 스레드이므로 주어진 시간에 1개의 CPU만 사용할 수 있습니다.
  • node.js 웹 애플리케이션은 Nginx 또는 Apache와 같은 완전한 웹 서버입니다.
  • 이는 하위 프로세스 생성을 위해 child_process.fork() API를 통해 스레드를 지원하고 클러스터 모듈도 제공합니다.

이 간략한 소개를 통해 귀하는 첫 번째 JavaScript 프로그램을 작성하고 싶어할 것입니다. 하지만 먼저 다음 가이드를 사용하여 Linux 시스템에 Node.jsNPM 패키지를 설치해야 합니다.

  1. Linux 시스템에 최신 Nodejs 및 NPM 버전 설치

Linux에서 첫 번째 Node.js 앱을 만드는 방법

Node.js를 설치했다면 이제 시작할 준비가 된 것입니다. 먼저 애플리케이션 파일을 저장할 디렉터리를 만드는 것부터 시작하세요.

sudo mkdir -p /var/www/myapp

그런 다음 해당 디렉터리로 이동하여 애플리케이션에 대한 package.json 파일을 만듭니다. 이 파일은 프로젝트 이름, 작성자, 의존하는 패키지 목록 등 프로젝트에 대한 작은 문서로 사용됩니다.

cd /var/www/myapp
npm init

그러면 여러 가지 질문이 표시됩니다. 아래 설명에 따라 대답하고 [Enter]를 누르세요. package.json에서 가장 중요한 사항은 아래 설명된 이름 및 버전 필드입니다.

  • 패키지 이름 – 앱 이름이며 기본값은 디렉터리 이름입니다.
  • 버전 – 앱 버전입니다.
  • 설명 – 앱에 대한 간단한 설명을 작성합니다.
  • 진입점 – 실행할 기본 패키지 파일을 설정합니다.
  • 테스트 명령 – 테스트 스크립트를 만드는 데 사용됩니다(기본값은 빈 스크립트).
  • git 저장소 – Git 저장소를 정의합니다(있는 경우).
  • 키워드 – 다른 사용자가 npm에서 패키지를 식별하는 데 중요한 키워드를 설정합니다.
  • 저자 – 작성자 이름을 지정합니다. 여기에 이름을 입력하세요.
  • 라이선스 – 앱/패키지에 대한 라이선스를 지정합니다.

다음으로 server.js 파일을 만듭니다.

sudo vi server.js

아래 코드를 복사하여 붙여넣으세요.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

그런 다음 다음 명령을 사용하여 애플리케이션을 시작합니다.

node server.js
OR
npm start

다음으로, 웹 브라우저를 열고 웹 앱에 액세스하세요. 웹 앱은 ”Hello world!”라는 문자열을 인쇄하는 것 외에는 아무것도 하지 않습니다. ”, 주소 사용:

http://localhost:3333

위 코드에서 처리되는 주요 이벤트는 HTTP 모듈을 통한 HTTP 요청입니다.

Nodejs HTTP 모듈

Node.js에서 모듈은 JavaScript 라이브러리와 비슷하며 앱에서 재사용할 수 있는 기능을 포함합니다. 내장 모듈, 30개의 파티 모듈을 사용하거나 직접 만들 수 있습니다.

앱에서 모듈을 호출하려면 표시된 대로 require 함수를 사용하세요.

var http = require('http');

http 모듈이 포함되면 특정 포트(이 예에서는 3333)에서 수신 대기하는 서버가 생성됩니다. http.creatServer 메소드는 함수(클라이언트가 앱에 액세스하려고 할 때 호출됨)를 인수로 받아들이는 실제 http 서버를 생성합니다.

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);

http.createServer의 함수에는 req(request)res(response)라는 두 가지 인수가 있습니다. req 인수는 사용자 또는 클라이언트의 요청이고 res 인수는 클라이언트에 응답을 보냅니다.

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

서버가 시작되면 코드의 마지막 부분은 출력을 콘솔로 보냅니다.

console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Node.js에서 라우팅

이 섹션에서는 라우팅으로 알려진 Node.js 프로그래밍의 가장 중요한 개념 중 하나를 설명하겠습니다(컴퓨터 네트워킹의 라우팅과 비교: 트래픽 경로를 찾는 프로세스). 네트워크에서).

여기서 라우팅은 클라이언트의 요청을 처리하는 기술입니다. URL에 지정된 대로 클라이언트가 요청한 콘텐츠를 제공합니다. URL은 경로와 쿼리 문자열로 구성됩니다.

클라이언트의 요청 쿼리 문자열을 보려면 응답에 아래 줄을 추가하면 됩니다.

res.write(req.url);
res.end()

아래는 새로운 코드입니다.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

파일을 저장하고 다음 명령을 사용하여 애플리케이션을 다시 시작하십시오.

node server.js
OR
npm start

웹 브라우저에서 아래와 같이 표시될 다른 URL을 입력합니다.

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

이제 홈페이지, 정보 및 작성자 페이지가 포함된 Tecmint를 위한 아주 작은 웹사이트를 만들겠습니다. 우리는 이 페이지에 몇 가지 정보를 표시할 것입니다.

편집할 server.js 파일을 열고 아래 코드를 추가하세요.

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To linux-console.net!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('linux-console.net - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://linux-console.net/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://linux-console.net/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

위 코드에서는 // 문자를 사용하여 Node.js에 주석을 작성하는 방법과 클라이언트 요청 라우팅을 위한 스위치 및 케이스 문도 소개했습니다.

파일을 저장하고 서버를 시작한 후 다양한 페이지에 액세스해 보세요.

지금은 그게 다야! Nodejs 및 NPM 웹사이트에서 자세한 정보를 확인할 수 있습니다.

추가 읽기: Linux에서 Node.js 앱을 실행하기 위해 PM2를 설치하는 방법

결론

Node.js는 오늘날 새로운 최고 수준으로 상승하고 있으며, 이를 통해 전체 스택 개발이 이전보다 훨씬 쉬워졌습니다. 이벤트 중심 프로그래밍의 독특한 철학을 통해 매우 빠르고 효율적이며 확장 가능한 웹 프로세스와 서버를 만들 수 있습니다.

다음으로 웹/모바일 애플리케이션을 빠르고 안정적으로 개발하기 위해 기본 기능을 확장하는 Node.js 프레임워크에 대해 설명하겠습니다. 아래 댓글 섹션을 통해 이 기사에 대한 의견을 공유해 주세요.