Objecte objecte incorporat

ObjectSandBox

Objecte sandbox aïllat, utilitzat per gestionar un espai d'execució independent

Tot el codi s'executa al seu propi sandbox. El requisit global cridarà al sandbox actual per carregar el mòdul i el sandbox es passarà al sandbox carregat mitjançant require. L'exemple següent crea una zona de proves que restringeix l'accés només als mòduls bàsics globals.assertmòdul i afegiu dos mòduls personalitzats a i b:

1 2 3 4 5 6 7 8
var vm = require('vm'); var sbox = new vm.SandBox({ a: 100, b: 200, assert: require('assert') }); var mod_in_sbox = sbox.require('./path/to/mod');

Cal tenir en compte que SandBox no és una caixa de proves de seguretat a prova d'atacs. SandBox és només un espai d'execució independent que es pot utilitzar per aïllar diferents codis i evitar interferències mútues, però no pot prevenir codis maliciosos.

relació hereditària

Constructor

SandBox

Construeix un nou objecte sandbox d'aïllament i inicialitza el mòdul bàsic

1
new SandBox(Object mods = {});

Paràmetres de trucada:

  • mods: Objecte, especifica el diccionari d'objectes del mòdul que cal afegir

Construeix un nou objecte sandbox d'aïllament i inicialitza el mòdul bàsic

1 2
new SandBox(Object mods, Function require);

Paràmetres de trucada:

  • mods: Objecte, especifica el diccionari d'objectes del mòdul que cal afegir
  • require: Funció, una funció de requeriment personalitzada. Quan el mòdul no existeix, la funció personalitzada es crida primer, sense retorn, i després es carrega des del fitxer.

Construïu un nou objecte de prova d'aïllament global independent i inicialitzeu el mòdul bàsic

1 2
new SandBox(Object mods, Object global);

Paràmetres de trucada:

  • mods: Objecte, especifica el diccionari d'objectes del mòdul que cal afegir
  • global: Objecte, especifica la propietat Global inicialitzada

Construïu un nou objecte de prova d'aïllament global independent i inicialitzeu el mòdul bàsic

1 2 3
new SandBox(Object mods, Function require, Object global);

Paràmetres de trucada:

  • mods: Objecte, especifica el diccionari d'objectes del mòdul que cal afegir
  • require: Funció, una funció de requeriment personalitzada. Quan el mòdul no existeix, la funció personalitzada es crida primer, sense retorn, i després es carrega des del fitxer.
  • global: Objecte, especifica la propietat Global inicialitzada

propietats dels membres

global

Objecte, consulta sandboxglobalobjecte

1
readonly Object SandBox.global;

modules

Objecte, consulteu l'objecte diccionari de tots els mòduls existents a la zona de proves

1
readonly Object SandBox.modules;

funció de membre

addBuiltinModules

Afegiu mòduls bàsics integrats a la caixa de sorra

1
SandBox.addBuiltinModules();

add

Afegiu un mòdul base a la caixa de sorra

1 2
SandBox.add(String id, Value mod);

Paràmetres de trucada:

  • id: String, especifica el nom del mòdul que s'ha d'afegir. Aquest camí no té res a veure amb l'script que s'executa actualment. Ha de ser un camí absolut o un nom de mòdul.
  • mod: Valor, especifica l'objecte mòdul que cal afegir

Afegiu un conjunt de mòduls bàsics a la caixa de sorra

1
SandBox.add(Object mods);

Paràmetres de trucada:

  • mods: Objecte, especifica el diccionari d'objectes del mòdul que s'ha d'afegir. El mòdul javascript afegit generarà una còpia per evitar la interferència mútua entre els objectes de modificació del sandbox.

addScript

Afegiu un mòdul d'script a la zona de proves

1 2
Value SandBox.addScript(String srcname, Buffer script);

Paràmetres de trucada:

  • srcname: String, especifica el nom de l'script que cal afegir, srcname ha d'incloure l'extensió, com arajsonO js, jsc
  • script:Buffer, especifica el codi binari que cal afegir

Resultats de retorn:

  • Value, retorna l'objecte mòdul carregat

remove

Elimina el mòdul base especificat de la caixa de proves

1
SandBox.remove(String id);

Paràmetres de trucada:

  • id: String, especifica el nom del mòdul que s'ha de suprimir. Aquest camí no té res a veure amb l'script que s'executa actualment. Ha de ser un camí absolut o un nom de mòdul.

has

Detecteu si el mòdul bàsic existeix des del sandbox

1
Boolean SandBox.has(String id);

Paràmetres de trucada:

  • id: String, especifica el nom del mòdul a detectar. Aquest camí no té res a veure amb l'script que s'executa actualment. Ha de ser un camí absolut o un nom de mòdul.

Resultats de retorn:

  • Boolean, existeix?

clone

Copieu el sandbox actual. El nou sandbox conté els mòduls del sandbox actual amb el mateix nom i requereixen funció.

1
SandBox SandBox.clone();

Resultats de retorn:

  • SandBox, ha copiat una nova caixa de proves

freeze

Congela la caixa de sorra actual i la caixa de sorra congelada.globalEls canvis fets seran ignorats

1
SandBox.freeze();

run

executar un script

1
SandBox.run(String fname);

Paràmetres de trucada:

  • fname: String, especifica el camí de l'script que s'ha d'executar. Aquest camí no té res a veure amb l'script que s'executa actualment i ha de ser un camí absolut.

resolve

Consulteu un mòdul i retorneu el nom complet del fitxer del mòdul

1 2
String SandBox.resolve(String id, String base);

Paràmetres de trucada:

  • id: String, especifica el nom del mòdul que es carregarà
  • base: Cadena, especifiqueu el camí de cerca

Resultats de retorn:

  • String, retorna el nom complet del fitxer del mòdul carregat

require

Carrega un mòdul i retorna l'objecte mòdul

1 2
Value SandBox.require(String id, String base);

Paràmetres de trucada:

  • id: String, especifica el nom del mòdul que es carregarà
  • base: Cadena, especifiqueu el camí de cerca

Resultats de retorn:

  • Value, retorna l'objecte mòdul carregat

setModuleCompiler

Afegiu un compilador a l'extname especificat. L'extname no pot ser una extensió integrada del sistema (incloent-hi {'.js', '.json', '.jsc', '.wasm'}), el compilador ha de retornar un script javascript vàlid.

1 2
SandBox.setModuleCompiler(String extname, Function compiler);

Paràmetres de trucada:

  • extname: Cadena, l'extname especificat ha de començar per '.' i és una extensió integrada que no és del sistema.
  • compiler: Funció, funció de devolució de trucada de compilació, tots els fitxers amb extname només requeriran una vegada. El format de la funció de devolució de trucada és compiler(buf, requireInfo), buf és el fitxer de lecturaBuffer, l'estructura requireInfo és {filename: string}.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
var vm = require('vm'); var sbox = new vm.SandBox({}); // compile ts to js and load sbox.setModuleCompiler('.ts', tsCompiler); var mod_ts = sbox.require('./a.ts'); // compile coffee to js and load sbox.setModuleCompiler('.coffee', cafeCompiler); var mod_coffee = sbox.require('./a.coffee'); // compile jsx to js and load sbox.setModuleCompiler('.jsx', reactCompiler); var mod_react = sbox.require('./a.jsx'); // compile yaml to rest and load sbox.setModuleCompiler('.yml', yaml2Rest) sbox.setModuleCompiler('.yaml', yaml2Rest) // compile markdown to html and load sbox.setModuleCompiler('.md', mdCompiler) sbox.setModuleCompiler('.markdown', mdCompiler)

toString

Retorna la representació de cadena de l'objecte. En general, es retorna "[Objecte natiu]". L'objecte es pot tornar a implementar segons les seves pròpies característiques.

1
String SandBox.toString();

Resultats de retorn:

  • String, retorna la representació de cadena de l'objecte

toJSON

Retorna una representació en format JSON de l'objecte, generalment retornant una col·lecció de propietats llegibles definides per l'objecte.

1
Value SandBox.toJSON(String key = "");

Paràmetres de trucada:

  • key: Corda, no utilitzada

Resultats de retorn:

  • Value, retorna un valor que conté JSON serializable