웹 프론트엔드 JS 튜토리얼 nodejs 시작하기 tutorial_node.js

nodejs 시작하기 tutorial_node.js

May 16, 2016 pm 04:30 PM
nodejs 시작하기

머리말

nodeJ를 배우지 않으면 우리는 늙어버릴 것입니다... HTML5가 붐이 일 때 많은 조상들이 NodeJ의 여정을 시작했고, 저는 그 당시에도 여전히 서버사이드 프로그램을 하고 있었습니다
나중에 프론트엔드로 전환했는데 이미 저와 계층 사이의 거리가 매우 컸습니다. 서버측 언어를 알고 오랫동안 일해왔기 때문에 이제 막 NodeJ를 배우기 시작했고 앞으로 나아가고 있습니다. 완전한 프런트엔드
이번 NodeJ 학습 계획은 다음과 같습니다.
① 기초지식을 익히는데 1~2주
② 약 1주일 만에 간단한 프로젝트 개발
③ NodeJ를 활용해 모바일 단말 디버깅 도구 세트 개발
④ 포장 관련 (조금 멀 수도 있음)

NodeJ 기능

① 비동기식
파일 읽기부터 네트워크 요청까지 NodeJs는 비동기적으로 완료되며 콜백 함수가 중요한 역할을 합니다. 프로그래밍 모델 측면에서는 Node가 선두를 달리고 있습니다

② 이벤트 콜백
이벤트 콜백은 프로그램을 경량화하지만 세부 사항은 여전히 ​​프로그래머에게 달려 있습니다. 하지만 콜백 함수는 실제로 읽기가 상당히 어렵습니다

3단일 스레드
노드가 싱글 쓰레드라면 언어가 너무 깊어서 프로세스 내 통신에 대해 물어보는 게 귀찮을 텐데, 쓰레드에 교착 상태나 다른 문제는 없습니다
하지만 멀티코어를 사용할 수 없기 때문에 성능에 문제가 있습니다.

모듈 메커니즘/CommonJ

저희는 서버사이드 개발을 했는데요, 코드가 잘 정리되지 않으면 추후 유지관리가 매우 힘들기 때문에 MVC와 3티어 아키텍처가 있습니다
이제 프런트엔드의 비즈니스 로직은 점차 백엔드에 가까워지고 있습니다. 단일 페이지 애플리케이션의 경우 백엔드의 프로그램 로직을 능가합니다.
지속적인 페이지뷰 증가로 인해 js코드의 양도 급증하게 되는데, 프론트엔드 코드를 어떻게 잘 관리해야 하는지가 문제가 되면서 requireJs가 등장하게 되었습니다...
추신: 이 단락은 nodeJ와 관련이 없습니다...
JavaScript에는 모듈식 시스템이 없으므로 CommonJs는 js에 대규모 애플리케이션 개발을 위한 기반을 제공하기 위해 제안되었습니다

모듈 참조

수학적 계산과 같은 모듈을 참조하려는 경우:

var math = require('math');

모듈 정의

자체 모듈을 정의하고 싶다면 이렇게 하면 됩니다.

코드 복사 코드는 다음과 같습니다.

수출.추가 = 함수 () {
합계를 반환합니다.
}

이 함수를 수학으로 정의하면 사용할 수 있습니다

math.add();

모듈 ID

모듈 식별자는 require에 전달되는 매개변수입니다. 카멜 표기법으로 이름을 지정해야 하며, 이는 requireJS와 매우 유사합니다.

모듈 구현

Node에서의 모듈 구현은 두 가지 범주로 나뉘는데, 하나는 시스템 수준의 핵심 모듈이고 다른 하나는 사용자가 작성한 파일 모듈입니다
핵심 모듈은 컴파일 프로세스 중에 바이너리 파일로 변환됩니다. 노드 프로세스가 시작된 후 일부 핵심 모듈은 메모리에 직접 로드됩니다(파일 위치, 컴파일 및 실행)
파일 모듈을 동적으로 로드해야 하는데, 이는 상대적으로 느립니다
하지만 일단 로드되면 해당 파일은 캐시되고 캐시된 파일(컴파일된 파일)은 다시 소개될 때 읽혀집니다.
여기서 좀 더 자세히 살펴보겠습니다. 밑줄을 사용하면 HTML을 컴파일하여 템플릿 함수를 형성합니다(실제로는 함수일 뿐입니다).
프로젝트 배포 전 컴파일된 함수를 저장하고 html 템플릿 파일을 제거하세요(최적화 효과는 알 수 없음)

노드에서 각 모듈은 객체입니다.

코드 복사 코드는 다음과 같습니다.

함수 모듈(id, parent) {
this.id = id;
this.exports = {};
//parent는 키워드이므로 무분별하게 사용하면 안 됩니다
This.parent = 부모;
if (부모 && parent.children) {
parent.children.push(this);
}
this.filename = null;
this.loaded = false;
this.children = [];
}

컴파일 및 실행 중 파일 모듈 도입의 마지막 단계입니다. 특정 파일을 찾은 후 노드는 새 모듈 객체를 생성한 다음 경로에 따라 로드하고 컴파일합니다
성공적으로 컴파일된 각 모듈은 해당 파일 경로를 Module._cache

의 인덱스로 캐시합니다.

각 모듈 파일에는 require, imports, module이라는 세 가지 변수가 있지만 파일에 정의되어 있지 않습니다. (__filename__ 및 __dirname__ 변수도 마찬가지입니다.)
실제로 컴파일 프로세스 중에 Node는 자바스크립트 파일 head와 tail의 내용을 래핑합니다(사용자 정의 함수를 창에 전달하는 것과 동일).

코드 복사 코드는 다음과 같습니다.

(함수(내보내기, 요구, 모듈, __filename__, __dirname__) {
var 수학 = require('math');
imports.area = 함수(반경) {
'' 반환;
};
});

이런 식으로 모듈은 격리되어 서로 영향을 주지 않습니다. 이는 밑줄 컴파일과 다소 비슷합니다...

패키지 및 NPM

노드는 자체 핵심 모듈을 구성하므로 타사 파일 모듈을 순서대로 작성하고 사용할 수 있지만 타사 모듈에서는 모듈이 여전히 다양한 위치에 해싱됩니다.
모듈 아웃소싱과 NPM은 서로 직접 참조할 수 없습니다.
추신: 여러 모듈이 패키지를 구성하게 됩니다. 이 패키지의 개념은 Java 패키지의 개념과 유사하므로 #assemblies의 개념도 유사해야 합니다.

패키지 구조의 압축을 풀면 여러 파일이 형성됩니다.
① package.json 설명 파일
② bin 실행 가능한 바이너리 디렉터리
③ lib 자바스크립트 코드 디렉토리
④ 문서문서(거의 없음)
⑤ 테스트 데모

위는 CommonJS 패키지의 사양 중 일부이지만 (초보자의 경우) NPM을 마스터해야 관리 패키지를 능숙하게 설치할 수 있습니다.

종속성 패키지 설치

종속성 패키지를 설치하는 것이 일반적인 방법입니다.

npm 익스프레스 설치
실행 후 현재 디렉터리에 node_modules 디렉터리가 생성되고, 그 아래에 express 디렉터리가 생성됩니다...
추신: express는 NodeJs에서 널리 사용되는 웹 개발 프레임워크로, 웹 애플리케이션을 빠르게 개발하는 데 도움이 됩니다
설치가 완료된 후 호출할 수 있습니다:

코드 복사 코드는 다음과 같습니다.

var express = require('express');

결론

이 섹션은 짧게 끝나고 실제 프로젝트 프로세스는 나중에 점차 심화될 예정입니다

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

클릭 한 번으로 PPT를 생성해보세요! 키미: 'PPT 이주노동자'가 먼저 대중화되게 해주세요 클릭 한 번으로 PPT를 생성해보세요! 키미: 'PPT 이주노동자'가 먼저 대중화되게 해주세요 Aug 01, 2024 pm 03:28 PM

키미: 단 한 문장이면 단 10초만에 PPT가 완성됩니다. PPT가 너무 짜증나네요! 회의를 하려면 PPT가 있어야 하고, 주간 보고서를 작성하려면 PPT가 있어야 하며, 누군가를 부정행위를 했다고 비난하려면 PPT를 보내야 합니다. 대학은 PPT 전공을 공부하는 것과 비슷합니다. 수업 시간에 PPT를 보고 수업 후에 PPT를 하는 거죠. 아마도 데니스 오스틴이 37년 전 PPT를 발명했을 때, 언젠가 PPT가 이렇게 널리 보급될 것이라고는 예상하지 못했을 것입니다. 우리가 PPT를 만들면서 힘들었던 경험을 이야기하면 눈물이 납니다. "20페이지가 넘는 PPT를 만드는 데 3개월이 걸렸고, 수십 번 수정했어요. PPT를 보면 토할 것 같았어요. 한창 때는 하루에 다섯 장씩 했는데, 숨소리까지 냈어요." PPT였어요." 즉석 회의가 있으면 해야죠.

CVPR 2024 시상식 전체가 발표되었습니다! 약 10,000명이 오프라인으로 컨퍼런스에 참석했으며 Google의 중국인 연구원이 최우수 논문상을 수상했습니다. CVPR 2024 시상식 전체가 발표되었습니다! 약 10,000명이 오프라인으로 컨퍼런스에 참석했으며 Google의 중국인 연구원이 최우수 논문상을 수상했습니다. Jun 20, 2024 pm 05:43 PM

베이징 시간으로 6월 20일 이른 아침, 시애틀에서 열린 최고의 국제 컴퓨터 비전 컨퍼런스인 CVPR2024가 최우수 논문 및 기타 수상작을 공식 발표했습니다. 올해는 우수논문 2편, 최우수 학생논문 2편 등 총 10편의 논문이 수상하였습니다. 컴퓨터 비전(CV) 분야 최고 학회는 매년 수많은 연구기관과 대학이 모여드는 CVPR이다. 통계에 따르면 올해 총 1만1532편의 논문이 제출돼 2719편이 채택돼 합격률 23.6%를 기록했다. Georgia Institute of Technology의 CVPR2024 데이터 통계 분석에 따르면 연구 주제 관점에서 가장 많은 논문이 이미지 및 비디오 합성 및 생성입니다(Imageandvideosyn

nodejs는 백엔드 프레임워크인가요? nodejs는 백엔드 프레임워크인가요? Apr 21, 2024 am 05:09 AM

Node.js는 고성능, 확장성, 크로스 플랫폼 지원, 풍부한 생태계, 개발 용이성 등의 기능을 제공하므로 백엔드 프레임워크로 사용할 수 있습니다.

베어메탈부터 700억 개의 매개변수가 있는 대형 모델까지 튜토리얼과 바로 사용할 수 있는 스크립트가 있습니다. 베어메탈부터 700억 개의 매개변수가 있는 대형 모델까지 튜토리얼과 바로 사용할 수 있는 스크립트가 있습니다. Jul 24, 2024 pm 08:13 PM

우리는 LLM이 대규모 데이터를 사용하여 대규모 컴퓨터 클러스터에서 훈련된다는 것을 알고 있습니다. 이 사이트는 LLM 훈련 프로세스를 지원하고 개선하는 데 사용되는 다양한 방법과 기술을 소개합니다. 오늘 우리가 공유하고 싶은 것은 기본 기술에 대해 심층적으로 살펴보고 운영 체제 없이도 수많은 "베어 메탈"을 LLM 교육을 위한 컴퓨터 클러스터로 전환하는 방법을 소개하는 기사입니다. 이 기사는 기계가 생각하는 방식을 이해하여 일반 지능을 달성하기 위해 노력하는 AI 스타트업 Imbue에서 가져온 것입니다. 물론 운영 체제가 없는 "베어 메탈"을 LLM 교육을 위한 컴퓨터 클러스터로 전환하는 것은 탐색과 시행착오로 가득 찬 쉬운 과정이 아니지만 Imbue는 마침내 700억 개의 매개변수를 사용하여 LLM을 성공적으로 교육했습니다. 과정이 쌓이다

AI 활용 | AI가 혼자 사는 소녀의 생활 브이로그를 만들어 3일 만에 수만 개의 좋아요를 받았습니다. AI 활용 | AI가 혼자 사는 소녀의 생활 브이로그를 만들어 3일 만에 수만 개의 좋아요를 받았습니다. Aug 07, 2024 pm 10:53 PM

Machine Power Report 편집자: Yang Wen 대형 모델과 AIGC로 대표되는 인공지능의 물결은 우리가 살고 일하는 방식을 조용히 변화시키고 있지만 대부분의 사람들은 여전히 ​​그것을 어떻게 사용하는지 모릅니다. 이에 직관적이고 흥미롭고 간결한 인공지능 활용 사례를 통해 AI 활용 방법을 자세히 소개하고 모두의 사고를 자극하고자 'AI in Use' 칼럼을 론칭하게 됐다. 또한 독자들이 혁신적인 실제 사용 사례를 제출하는 것을 환영합니다. 영상 링크 : https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ 최근 샤오홍슈에서는 혼자 사는 소녀의 인생 브이로그가 인기를 끌었습니다. 몇 가지 치유의 말과 함께 일러스트레이션 스타일의 애니메이션을 단 며칠 만에 쉽게 익힐 수 있습니다.

nodejs를 mysql 데이터베이스에 연결하는 방법 nodejs를 mysql 데이터베이스에 연결하는 방법 Apr 21, 2024 am 06:13 AM

MySQL 데이터베이스에 연결하려면 다음 단계를 따라야 합니다. mysql2 드라이버를 설치합니다. mysql2.createConnection()을 사용하여 호스트 주소, 포트, 사용자 이름, 비밀번호 및 데이터베이스 이름이 포함된 연결 개체를 만듭니다. 쿼리를 수행하려면 Connection.query()를 사용하세요. 마지막으로 Connection.end()를 사용하여 연결을 종료합니다.

nodejs 설치 디렉토리에 있는 npm과 npm.cmd 파일의 차이점은 무엇입니까? nodejs 설치 디렉토리에 있는 npm과 npm.cmd 파일의 차이점은 무엇입니까? Apr 21, 2024 am 05:18 AM

Node.js 설치 디렉터리에는 npm과 npm.cmd라는 두 가지 npm 관련 파일이 있습니다. 차이점은 다음과 같습니다. 확장자가 다릅니다. npm은 실행 파일이고 npm.cmd는 명령 창 바로 가기입니다. Windows 사용자: npm.cmd는 명령 프롬프트에서 사용할 수 있으며, npm은 명령줄에서만 실행할 수 있습니다. 호환성: npm.cmd는 Windows 시스템에만 해당되며 npm은 크로스 플랫폼에서 사용할 수 있습니다. 사용 권장사항: Windows 사용자는 npm.cmd를 사용하고, 기타 운영 체제는 npm을 사용합니다.

RAG의 12가지 문제점을 카운트다운하는 NVIDIA 수석 아키텍트가 솔루션을 가르칩니다. RAG의 12가지 문제점을 카운트다운하는 NVIDIA 수석 아키텍트가 솔루션을 가르칩니다. Jul 11, 2024 pm 01:53 PM

검색 증강 생성(RAG)은 검색을 사용하여 언어 모델을 향상시키는 기술입니다. 특히, 언어 모델은 답변을 생성하기 전에 광범위한 문서 데이터베이스에서 관련 정보를 검색한 다음 이 정보를 사용하여 생성 프로세스를 안내합니다. 이 기술은 콘텐츠의 정확성과 관련성을 크게 향상시키고 환각 문제를 효과적으로 완화하며 지식 업데이트 속도를 높이고 콘텐츠 생성 추적성을 향상시킬 수 있습니다. RAG는 ​​의심할 여지 없이 인공 지능 연구에서 가장 흥미로운 분야 중 하나입니다. RAG에 대한 자세한 내용은 본 사이트의 칼럼 기사 "대형 모델의 단점을 보완하는 데 특화된 RAG의 새로운 발전은 무엇인가?"를 참조하시기 바랍니다. 이 리뷰는 이를 명확하게 설명합니다." 그러나 RAG는 완벽하지 않으며 사용자는 이를 사용할 때 몇 가지 "고통"에 직면하는 경우가 많습니다. 최근 NVIDIA의 고급 생성 AI 솔루션

See all articles