Node.js 모듈 및 패키지 기반 코드 배포 분석 방법_node.js
모듈 경로 확인 규칙
숙련된 C 프로그래머는 새 프로그램을 작성할 때 make 파일부터 시작합니다. 마찬가지로, NodeJS를 사용하여 프로그램을 작성하기 전에, 집을 수리할 때 먼저 비계를 세우는 것처럼, 좋은 시작을 위해 먼저 디렉터리 구조와 코드의 배포 방법을 준비해야 합니다. 본 장에서는 이와 관련된 다양한 지식을 소개한다.
모듈 경로 확인 규칙
require 함수는 슬래시(/) 또는 드라이브 문자(C:)로 시작하는 절대 경로와 ./로 시작하는 상대 경로도 지원한다는 것을 이미 알고 있습니다. 그러나 이 두 경로는 모듈 간에 강한 결합 관계를 형성합니다. 모듈 파일의 저장 위치가 변경되면 이 모듈을 사용하는 다른 모듈의 코드도 이에 맞게 조정되어야 하므로 전체적으로 문제가 됩니다. . 따라서 require 함수는 foo/bar와 유사하게 작성된 세 번째 형태의 경로를 지원하며, 모듈 위치를 찾을 때까지 다음 규칙에 따라 경로를 차례로 구문 분석합니다.
내장 모듈
require 함수에 전달된 이름이 NodeJS 내장 모듈 이름인 경우 경로 분석이 수행되지 않고 require('fs')와 같이 내보낸 내부 모듈의 객체가 직접 반환됩니다.
node_modules 디렉터리
NodeJS는 모듈 저장을 위한 특별한 node_modules 디렉터리를 정의합니다. 예를 들어, 모듈의 절대 경로는 /home/user/hello.js입니다. require('foo/bar') 메소드를 사용하여 모듈에 모듈을 로드하면 NodeJS는 다음 경로를 순서대로 사용하려고 시도합니다. .
/home/user/node_modules/foo/bar /home/node_modules/foo/bar /node_modules/foo/bar
NODE_PATH 환경 변수
PATH 환경 변수와 유사하게 NodeJS에서는 NODE_PATH 환경 변수를 통해 추가 모듈 검색 경로를 지정할 수 있습니다. NODE_PATH 환경 변수에는 하나 이상의 디렉터리 경로가 포함되어 있으며 Linux에서는 :로, Windows에서는 ;로 구분됩니다. 예를 들어 다음 NODE_PATH 환경 변수가 정의됩니다.
NODE_PATH=/home/user/lib:/home/lib
require('foo/bar')를 사용하여 모듈을 로드할 때 NodeJS는 다음 경로를 순서대로 시도합니다.
/home/user/lib/foo/bar /home/lib/foo/bar
팩
우리는 JS 모듈의 기본 단위가 단일 JS 파일이라는 것을 이미 알고 있지만 더 복잡한 모듈은 여러 하위 모듈로 구성되는 경우가 많습니다. 관리 및 사용을 용이하게 하기 위해 여러 하위 모듈로 구성된 대규모 모듈을 패키지라고 부르고 모든 하위 모듈을 동일한 디렉터리에 넣을 수 있습니다.
패키지를 구성하는 모든 하위 모듈 중에는 엔트리 모듈이 있어야 하며, 엔트리 모듈의 내보내기 개체는 패키지의 내보내기 개체로 사용됩니다. 예를 들어 다음과 같은 디렉터리 구조가 있습니다.
- /home/user/lib/ - cat/ head.js body.js main.js
cat 디렉토리는 3개의 하위 모듈을 포함하는 패키지를 정의합니다. main.js는 입력 모듈 역할을 하며 그 내용은 다음과 같습니다.
var head = require('./head'); var body = require('./body'); exports.create = function (name) { return { name: name, head: head.create(), body: body.create() }; };
다른 모듈에서 패키지를 사용하는 경우 해당 패키지의 진입 모듈을 로드해야 합니다. 위의 예를 계속해서 require('/home/user/lib/cat/main')을 사용하면 목표를 달성할 수 있지만 경로에 항목 모듈 이름이 나타나는 것은 좋은 생각이 아닌 것 같습니다. 따라서 패키지가 단일 모듈처럼 작동하도록 하려면 약간의 추가 작업을 수행해야 합니다.
index.js
모듈의 파일명이 index.js인 경우, 모듈을 로딩할 때 모듈 파일 경로 대신에 모듈이 위치한 디렉터리의 경로를 사용할 수 있습니다. 따라서 위의 예에 따르면 다음 두 가지가 있습니다. 진술은 동일합니다.
var cat = require('/home/user/lib/cat'); var cat = require('/home/user/lib/cat/index');
이런 방식으로 처리한 후에는 패키지 디렉터리 경로만 require 함수에 전달하면 됩니다. 전체 디렉터리가 단일 모듈로 사용되는 것처럼 느껴져 더욱 전체적인 느낌을 줍니다.
package.json
항목 모듈의 파일 이름과 저장 위치를 맞춤 설정하려면 패키지 디렉터리에 package.json 파일을 포함하고 여기에 항목 모듈의 경로를 지정해야 합니다. 위 예제의 cat 모듈은 다음과 같이 리팩터링될 수 있습니다.
- /home/user/lib/ - cat/ + doc/ - lib/ head.js body.js main.js + tests/ package.json
package.json의 내용은 다음과 같습니다.
{ "name": "cat", "main": "./lib/main.js" }
이런 방식으로 require('/home/user/lib/cat')를 사용하여 모듈을 로드할 수도 있습니다. NodeJS는 패키지 디렉터리의 package.json을 기반으로 항목 모듈의 위치를 찾습니다.

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제










![WLAN 확장 모듈이 중지되었습니다. [수정]](https://img.php.cn/upload/article/000/465/014/170832352052603.gif?x-oss-process=image/resize,m_fill,h_207,w_330)
Windows 컴퓨터의 WLAN 확장 모듈에 문제가 있는 경우 인터넷 연결이 끊어질 수 있습니다. 이러한 상황은 종종 좌절감을 주지만 다행히도 이 문서에서는 이 문제를 해결하고 무선 연결이 다시 제대로 작동하도록 하는 데 도움이 될 수 있는 몇 가지 간단한 제안 사항을 제공합니다. WLAN 확장성 모듈 복구가 중지되었습니다. Windows 컴퓨터에서 WLAN 확장성 모듈의 작동이 중지된 경우 다음 제안에 따라 문제를 해결하십시오. 네트워크 및 인터넷 문제 해결사를 실행하여 무선 네트워크 연결을 비활성화했다가 다시 활성화하십시오. WLAN 자동 구성 서비스 다시 시작 전원 옵션 수정 수정 고급 전원 설정 네트워크 어댑터 드라이버 재설치 일부 네트워크 명령 실행 이제 자세히 살펴보겠습니다.

이 문서에서는 무선 LAN 확장 모듈을 시작할 수 없음을 나타내는 이벤트 ID10000을 해결하는 방법을 자세히 설명합니다. 이 오류는 Windows 11/10 PC의 이벤트 로그에 나타날 수 있습니다. WLAN 확장성 모듈은 IHV(독립 하드웨어 공급업체) 및 ISV(독립 소프트웨어 공급업체)가 사용자에게 맞춤형 무선 네트워크 기능을 제공할 수 있도록 하는 Windows의 구성 요소입니다. Windows 기본 기능을 추가하여 기본 Windows 네트워크 구성 요소의 기능을 확장합니다. WLAN 확장성 모듈은 운영 체제가 네트워크 구성 요소를 로드할 때 초기화의 일부로 시작됩니다. 무선 LAN 확장 모듈에 문제가 발생하여 시작할 수 없는 경우 이벤트 뷰어 로그에 오류 메시지가 표시될 수 있습니다.

Non-Blocking, Event-Driven 기반으로 구축된 Node 서비스는 메모리 소모가 적다는 장점이 있으며, 대규모 네트워크 요청을 처리하는데 매우 적합합니다. 대규모 요청을 전제로 '메모리 제어'와 관련된 문제를 고려해야 합니다. 1. V8의 가비지 수집 메커니즘과 메모리 제한 Js는 가비지 수집 기계에 의해 제어됩니다.

파일 모듈은 파일 읽기/쓰기/열기/닫기/삭제 추가 등과 같은 기본 파일 작업을 캡슐화한 것입니다. 파일 모듈의 가장 큰 특징은 모든 메소드가 **동기** 및 ** 두 가지 버전을 제공한다는 것입니다. 비동기**, sync 접미사가 있는 메서드는 모두 동기화 메서드이고, 없는 메서드는 모두 이기종 메서드입니다.

1. sys 모듈 소개 앞서 소개한 os 모듈은 주로 운영 체제용이지만, 이 글의 sys 모듈은 주로 Python 인터프리터용입니다. sys 모듈은 Python과 함께 제공되는 모듈입니다. Python 인터프리터와 상호 작용하기 위한 인터페이스입니다. sys 모듈은 Python 런타임 환경의 다양한 부분을 처리하기 위한 많은 함수와 변수를 제공합니다. 2. sys 모듈에서 일반적으로 사용되는 메서드 dir() 메서드를 통해 sys 모듈에 어떤 메서드가 포함되어 있는지 확인할 수 있습니다. import sys print(dir(sys))1.sys.argv-get 명령줄 매개변수 sys. argv는 프로그램 외부에서 명령을 구현하는 데 사용됩니다. 프로그램에 매개변수가 전달되고 명령줄 매개변수 열을 얻을 수 있습니다.

서문 이 기사에서는 계속해서 Python 컬렉션 모듈을 소개합니다. 이번에는 그 안에 있는 명명된 튜플, 즉 명명된 튜플의 사용을 주로 소개합니다. 더 이상 고민할 필요 없이 시작하겠습니다. 좋아요, 팔로우 및 전달을 기억하세요~ ^_^네임드 튜플 생성하기 Python 컬렉션의 네임드 튜플 클래스인 Tuples는 튜플의 각 위치에 의미를 부여하고 코드의 가독성을 향상시킵니다. 일반 튜플이 사용되는 모든 곳에서 사용할 수 있으며 위치 인덱스가 아닌 이름으로 필드에 액세스하는 기능을 추가합니다. 이는 Python 내장 모듈 컬렉션에서 나옵니다. 사용되는 일반 구문은 다음과 같습니다. import collections XxNamedT

이벤트 루프는 Node.js의 기본 부분이며 메인 스레드가 차단되지 않도록 하여 비동기 프로그래밍을 가능하게 합니다. 이벤트 루프를 이해하는 것은 효율적인 애플리케이션을 구축하는 데 중요합니다. 다음 기사는 Node.js의 이벤트 루프에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다!

모든 데이터에는 처음에 "DOB"(생년월일)가 자동으로 할당됩니다. 따라서 어느 시점에서는 데이터를 처리할 때 날짜와 시간 데이터를 마주치는 것이 불가피합니다. 이 튜토리얼에서는 Python의 datetime 모듈과 pandas 및 pytz와 같은 일부 주변 라이브러리를 사용하는 방법을 안내합니다. Python에서 날짜 및 시간과 관련된 모든 것은 datetime 모듈에 의해 처리되며, 이 모듈은 모듈을 5개의 다른 클래스로 더 나눕니다. 클래스는 단순히 객체에 해당하는 데이터 유형입니다. 다음 그림은 일반적으로 사용되는 속성 및 예제와 함께 Python의 5개 날짜/시간 클래스를 요약합니다. 3가지 유용한 조각 1. datet를 사용하여 문자열을 날짜/시간 형식으로 변환합니다.
