Amikor létrehoz egy új repl példányt a kódban, az automatikusan hozzáfér a globális hatókörhöz tartozó bármihez. Módosíthatja a repl környezetet úgy, hogy néhány egyéni változót megjelenítsen a helyi hatókörben, hogy a repl hozzáférhessen hozzájuk, de nem látok egyszerű módot a globális hatókörhöz való hozzáférés megszüntetésére. Bárcsak egy új, üres globális hatókört adhatnék a repl-nek.
Itt van egy példa repl példány:
var repl = require('repl'),
msg = "Hello world!";
repl.start('> ').context.msg = msg;
Ebben a válaszban a következőket írtam be:
for (var key in global) {
console.log(key);
}
Ami a következő listát eredményezte:
- ArrayBuffer
- Int8Array
- Uint8Array
- Uint8ClampedArray
- Int16Array
- Uint16Array
- Int32Array
- Uint32Array
- Float32Array
- Float64Array
- DataView
- DTRACE_NET_SERVER_CONNECTION
- DTRACE_NET_STREAM_END
- DTRACE_NET_SOCKET_READ
- DTRACE_NET_SOCKET_WRITE
- DTRACE_HTTP_SERVER_REQUEST
- DTRACE_HTTP_SERVER_RESPONSE
- DTRACE_HTTP_CLIENT_REQUEST
- DTRACE_HTTP_CLIENT_RESPONSE
- COUNTER_NET_SERVER_CONNECTION
- COUNTER_NET_SERVER_CONNECTION_CLOSE
- COUNTER_HTTP_SERVER_REQUEST
- COUNTER_HTTP_SERVER_RESPONSE
- COUNTER_HTTP_CLIENT_REQUEST
- COUNTER_HTTP_CLIENT_RESPONSE
- globális
- folyamat
- GLOBÁLIS
- gyökér
- Puffer
- setTimeout
- setInterval
- clearTimeout
- clearInterval
- setAzonnali
- tiszta Azonnali
- konzol
- modult
- igényelnek
- üzenet
- _
- kulcs
Láthatja, hogy a msg
változónk hozzáadásra került, ami nagyszerű, de sok globális változót nem akarok felfedni. Szeretnék feltárni néhányat a kevésbé ártalmasak közül, mint például a setTimeout
, console
stb., de semmiképpen nem az olyanokat, mint a require
, process
stb. Tudja valaki, hogyan tudnám ezt leküzdeni anélkül, hogy teljesen új gyermekfolyamatot szülnék?
fs
-hez. Azzal könnyen elpusztítanak mindent. 08.04.2015repl._builtinLibs = [];
értéket. Ez kiküszöböli afs
modult, valamint a többi csomóponti magmodult alapértelmezés szerint. Lásd ezt a kérdést hogy. Ne feledje, hogy nem támogatom válaszának nyilvános hozzáférhetővé tételét. Valószínűleg még mindig vannak szélső esetek, például kezeletlen kivételek. 08.04.2015