Node 프로세스 프로세스(2)
이벤트'exit'**
프로세스가 종료될 때 터치합니다.이것은 고정된 시간에 모듈 상태(예를 들어 단원 테스트)를 검사하는 좋은 시기이다.주의해야 할 것은'exit'의 리셋이 끝나면 메인 이벤트 순환이 더 이상 실행되지 않기 때문에 타이머도 효력을 상실할 수 있습니다.
process.on('exit', function() {
//
setTimeout(function() {
console.log(' , ');
}, 0);
console.log(' ');
});
setTimeout(function() {
console.log('1');
}, 500);
이벤트'uncaught Exception'
trycatch가 없는 이상한 오류를 포착합니다.
process.on('uncaughtException', function() {
console.log(' ');
});
var a = '123';
a.a(); //
console.log(' , ');
이벤트'SIGINT'
현재 프로세스가 수신한 신호를 캡처합니다 (예: ctrl + c를 눌렀습니다).
process.on('SIGINT', function() {
console.log(' SIGINT 。');
});
console.log(' ctrl + C');
setTimeout(function() {
console.log('end');
}, 50000);
process.stdout
표준 출력 흐름(stdout)을 가리키는 쓰기 가능한 흐름(Writable Stream):
process.stdout.write('
');
process.stderr
표준 오류 흐름(stderr)을 가리키는 쓰기 가능한 흐름(Writable Stream):
process.stderr.write(' , stdout ');
process.stdin
표준 입력 스트림(stdin)을 가리키는 읽기 가능 스트림(Readable Stream)표준 입력 흐름은 기본적으로 정지 (pause) 이기 때문에 프로세스를 호출해야 합니다.stdin.resume () 수신 복구:
process.stdin.on('end', function() {
process.stdout.write('end');
});
function gets(cb){
process.stdin.setEncoding('utf8');
// (flowing-mode, , resume ), read
// https://github.com/nodejs/node-v0.x-archive/issues/5813
process.stdin.resume();
process.stdin.on('data', function(chunk) {
console.log('start!');
// ,
process.stdin.pause();
cb(chunk);
});
console.log(' ');
}
gets(function(reuslt){
console.log("["+reuslt+"]");
//process.stdin.emit('end'); // end
});
process.argv
현재 명령줄 명령 파라미터를 되돌려주지만 node 특수 (node-specific) 명령줄 옵션 (파라미터) 은 포함되지 않습니다.일반적인 첫 번째 원소는'node'이고, 두 번째 원소는 다음과 같다.Js 파일의 이름입니다.다음 요소는 명령줄에 전달된 매개변수 순서입니다.
// $node --harmony argv.js a b
console.log(process.argv); //[ 'node', 'E:\\github\
odeAPI\\process\\argv.js', 'a', 'b' ]
process.argv.forEach(function(val, index, array) {
console.log(index + ': ' + val);
});
process.execArgv
프로세스.argv는 유사하지만 node 특수 (node-specific) 를 되돌려주는 명령줄 옵션 (인자) 입니다.또한 모든 파일 이름 뒤에 있는 매개 변수는 무시됩니다.
// $node --harmony execArgv a b --version
console.log(process.execArgv); //[ '--harmony' ]
process.execArgv.forEach(function(val, index, array) {
console.log(index + ': ' + val);
});
process.abort()
node의 abort 이벤트를 터치하여 현재 프로세스를 종료합니다.
process.abort();
console.log(' ');
process.cwd
현재 프로세스의 작업 디렉토리를 반환하려면 다음과 같이 하십시오.
console.log(' :' + process.cwd()); // :E:\github
odeAPI\process
process.chdir(directory)
프로세스의 현재 프로세스를 변경하는 작업 디렉터리 (이 디렉터리는 이미 존재해야 함) 작업이 실패하면 예외가 발생합니다.
var path = require('path');
console.log(' :' + process.cwd()); // :E:\github
odeAPI\process
try {
process.chdir(path.resolve('.','tmp'));
console.log(' :' + process.cwd()); // :E:\github
odeAPI\process\tmp
}
catch (err) {
console.log('chdir: ' + err);
}
process.env
현재 시스템 환경 정보를 가져오는 객체는 일반적으로 환경 변수, 사용자 이름 등 시스템 정보를 추가로 얻을 수 있습니다.
console.log(process.env);
console.log('username: ' + process.env.USERNAME);
console.log('PATH: ' + process.env.PATH);
process.exit([code])
현재 프로세스를 종료하고 주어진 코드를 되돌려줍니다.코드를 생략하면 종료는 기본적으로 성공한 상태 코드 ('success'코드) 즉 0:
process.exit(1); //node shell 1
process.exitCode
프로세스를 종료할 때 node 셸이 포획한 상태 코드를 사용자 정의할 수 있습니다. (프로세스를 정상적으로 끝내거나process.exit () 명령을 사용하여 종료해야 합니다.)
process.exitCode = 4;
process.exit();
만약 프로세스를 지목했다면.exit(code)에서 종료된 오류 코드 (code) 는 프로세스를 덮어씁니다.exitCode 설정
process.version
노출 컴파일 시 버전 정보를 저장하는 내장 변수 NODE_버전 속성:
console.log(' : ' + process.version); // : v0.12.7
process.versions
노드와 종속 패키지 버전 정보를 저장하는 속성을 노출합니다.
console.log(process.versions);
//{ http_parser: '2.3',
// node: '0.12.7',
// v8: '3.28.71.19',
// uv: '1.6.1',
// zlib: '1.2.8',
// modules: '14',
// openssl: '1.0.1p' }
process.config
현재 node를 컴파일하는 데 사용됩니다.exe 구성 옵션의 객체:
console.log(process.config);
//{ target_defaults:
//{ cflags: [],
// default_configuration: 'Release',
// defines: [],
// include_dirs: [],
// libraries: [] },
// variables:
// { clang: 0,
// host_arch: 'x64',
// icu_data_file: 'icudt54l.dat',
// icu_data_in: '../../deps/icu/source/data/in\\icudt54l.dat',
// icu_endianness: 'l',
// icu_gyp_path: 'tools/icu/icu-generic.gyp',
// icu_locales: 'en,root',
// icu_path: 'deps\\icu',
// icu_small: true,
// icu_ver_major: '54',
// node_install_npm: true,
// node_prefix: '',
// node_shared_cares: false,
// node_shared_http_parser: false,
// node_shared_libuv: false,
// node_shared_openssl: false,
// node_shared_v8: false,
// node_shared_zlib: false,
// node_tag: '',
// node_use_dtrace: false,
// node_use_etw: true,
// node_use_mdb: false,
// node_use_openssl: true,
// node_use_perfctr: true,
// openssl_no_asm: 0,
// python: 'C:\\Python27\\python.exe',
// target_arch: 'x64',
// uv_library: 'static_library',
// v8_enable_gdbjit: 0,
// v8_enable_i18n_support: 1,
// v8_no_strict_aliasing: 1,
// v8_optimized_debug: 0,
// v8_random_seed: 0,
// v8_use_snapshot: false,
// visibility: '',
// want_separate_host_toolset: 0 } }
process.pid
현재 프로세스의 pid 가져오기:
console.log(process.pid);
process.kill(pid, [signal])
pid에 대응하는 프로세스를 끝내고 신호를 보냅니다. (신호 값이 정의되지 않으면 기본값은'SIGTERM'입니다.)
process.kill(process.pid, 'SIGTERM');
process.title
현재 프로세스의 제목 이름을 가져오거나 설정하려면:
console.log(process.title);
// : E:\Program Files\WebStorm 9.0.1\lib\libpty\win\x86\winpty-agent.exe - node title
process.title = 'new title!!!';
console.log(process.title); //new title!!!
process.arch
현재 CPU 아키텍처 반환('arm','ia32'또는'x64'):
console.log(process.arch); //x64
process.platform
현재 플랫폼 형식으로 돌아가기 ('darwin','freebsd','linux','sunos'또는'win32'):
console.log(process.platform); //win32
process.memoryUsage()
Node 프로세스의 메모리 사용량을 설명하는 객체를 반환합니다. 단위는bytes입니다.
console.log(process.memoryUsage()); //{ rss: 16875520, heapTotal: 9751808, heapUsed: 3997040 }
process.nextTick(callback)
프로세스 대상의 가장 중요한 속성 방법이라고 할 수 있습니다. 이벤트 순환 (EventLoop) 의 다음 순환에서 콜백 리셋 함수를 호출합니다.
주의해야 할 것은 I/O 작업(예를 들어 데이터 조회) 전에 반드시 실행된다는 것이다.
예:
console.log(' ');
process.nextTick(function() {
console.log('nextTick');
});
setTimeout(function(){
console.log('setTimeout!')
}, 2000);
console.log(' EventLoop');
// :
// EventLoop
// nextTick
// setTimeout
더 많이 오세요.https://www.jianshu.com/p/c4c655ee3d03
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.