학습 난점 제1부분: 요점 이해
노드를 공부할 때 잠재적인 장애를 극복하기 위해서는 인터넷 기초 지식이 중요하다.이 섹션과 다음 섹션에서 주요 주제를 다시 토론하고 노드와 연결할 것입니다.시작합시다!
노드의 진정한 의미 이해
Node는 개발자가 JavaScript를 사용하여 다양한 서버 사이드 도구와 응용 프로그램을 만들 수 있도록 소스가 시작된 크로스플랫폼 실행 환경입니다.
그러나 이것은 교과서의 정의일 뿐이다. 이 단어들의 의미를 분석해 보자.
노드는 어떤 파격적인 점이 있나요?
JavaScript는 원래 브라우저에서 실행되도록 설계되었습니다.이것은 그것이 사이트가 아닌 어느 곳에서도 운행할 수 없다는 것을 의미한다.Node는 JS를 브라우저 세계에서 가져왔기 때문에 다른 서버 언어가 할 수 있는 대부분의 일을 할 수 있습니다.이것이 바로 노드의 창의성이다.JavaScript 백엔드 기능을 제공합니다.
이 점을 실현하려면 노드는 원시 JS에 없는 새로운 기능을 갖추어야 한다. 그렇지?실제로 Node는 JS에 다음과 같은 기능을 제공합니다.
"V8"이라는 용어가 Node 옆에 나타납니다.V8이란?
JS가 실행될 때 환경에서 엔진을 실행해야 합니다.논의한 바와 같이 Node는 JS가 실행될 때의 환경이기 때문에 엔진도 필요합니다.Node 엔진은 Chrome의 오픈 소스 JS 엔진 V8을 기반으로 구축되었습니다.V8은 C++로 작성되었습니다. 자바스크립트에서 사용할 수 있는 연결을 통해 자신의 C++ 프로그램을 작성할 수 있습니다.
Mozilla의 SpiderMonkey, Microsoft의 Chakra과 같은 다른 런타임 엔진도 있습니다.
노드 중의 "Hello World"는 어떤 모양입니까?
.js
이어야 합니다.console.log("Hello World!");
cd
에서 파일 저장 폴더의 디렉터리에 들어가서 node [name-of-file].js
을 실행합니다.Look familiar? Since Node is a runtime environment for JS, you can power it with the JS syntax you know and love.
노드의 관건적인 개념을 이해하다
노드는 비동기식 및 이벤트로 구동되므로 다음과 같은 용어를 설명해 보겠습니다.
이벤트 드라이브: 컴퓨터의 모든 동작은 하나의 이벤트입니다.그것은 누군가가 서버의 포트에 접근하려고 하고 단추를 누르면 제출할 수 있는 네트워크 요청일 수도 있다. 이 가능성은 무궁무진하다.이벤트가 응답을 촉발합니다. 이것은 Node가 처리하는 것을 도와줍니다.
동기화와 비동기화는 두 가지 다른 코드의 운행 방식을 설명한다.
동기화: 다음 작업이 시작되기 전에 모든 작업을 완료해야 합니다.
비동기: 모든 줄의 운행 시간을 예측하기 위해 코드를 작성하지 않고 이벤트에 응답하기 위해 호출되는 작은 함수의 집합을 작성한다는 것을 의미합니다.
예를 들어 프로그램을 작성하고 있다면 다음과 같은 작업을 수행해야 합니다. 파일에서 텍스트를 읽고, 이 텍스트를 컨트롤러에 인쇄하고, 데이터베이스에 있는 사용자 목록을 조회하고, 사용자의 나이에 따라 사용자를 선별해야 합니다.
이러한 단계를 동기화하는 경우입니다.
This process is almost exactly like the way that you would use
addEventListener
in front-end JavaScript to wait for a user action such as a mouse-click or keyboard press. The main difference is that the events are going to be things such as network requests and database queries. This functionality is facilitated through the use of callbacks.
무엇이 리셋입니까?
콜백은 매개변수로 다른 함수에 전달되는 함수입니다.
// this has no callback
// it prints "First" then "Second"
console.log('First');
console.log('Second');
// this has a callback
// it prints "Second" then "First"
setTimeout(function() {
console.log('First');
}, 3000);
console.log('Second');
조심하지 않으면 callback hell이 발생할 수 있습니다. async 모듈 또는 Promises을 사용하는 등 실천을 통해 이러한 상황을 줄일 수 있습니다.그럼 오류를 우선적으로 리셋할까요?
Node 및 Express의 일반적인 약정은 error-first callbacks입니다.이 약정에서 리셋 함수의 첫 번째 값은 오류 값이고, 후속 매개 변수는 성공 데이터를 포함한다.이것은 만약 당신이 정말로 리셋을 만났다면, 한 요청이 한 번도 거치지 않은 과정 때문에 지연되었을 때, 통지를 받을 수 있다는 것을 보장한다.
사건의 순환을 해석하다.
이것은 이 절의 마지막 큰 개념인 사건의 순환을 이끌어 냈다.너는 사건의 순환 중에 있을 수 있다.그러나 길이가 더 길기 때문에 이 절에서 포인트를 정리할 것이다.
이벤트 사이클은 JavaScript 비동기 프로그래밍의 비밀입니다.JS는 한 라인에서 모든 조작을 실행하지만 일부 스마트 데이터 구조를 사용해서 우리에게 다중 라인에 대한 착각을 주었다.
이벤트 순환 작업은 창고와 작업 대기열을 감시하는 것입니다.만약 창고가 비어 있고 작업 대기열이 비어 있지 않다면, 대기열의 첫 번째 항목을 창고로 옮겨서 효과적으로 실행할 것입니다.'WebAPI'부분은 우리가 환경에서 우리에게 제공한 모든 것에서 얻은 것이다. 이 예에서 이것은 브라우저로
setTimeout
을 추적하는 능력을 제공한다.Ajax requests would be treated the same way - put into the webapi section, because the code for a request does not live in the JS runtime, it lives in the browser webapi.
그 후에 우리는 또 한 장에서 기본 원리를 소개했다.두 번째 부분!
Reference
이 문제에 관하여(학습 난점 제1부분: 요점 이해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/singhshemona/learning-nodejs-part-1-understanding-the-essentials-4h4o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)