Ответ 1
Выключает CoffeeScript поддерживает встроенную часть безопасности, установив аргумент sandbox
на true
с помощью вызова eval
. Например.
# Prepare
fsUtil = require('fs')
coffee = require('coffee-script')
# Read
dataStr = fsUtil.readFileSync('path').toString()
data = coffee.eval(dataStr, {sandbox:true})
Вышеприведенный код будет считываться в файлах данных, а затем проверять его с помощью coffeescript в режиме песочницы.
Я создал симпатичную оболочку для этого CSON, которая поддерживает файлы coffee
и js
через require, и cson
через указанный выше механизм и json
файлы с помощью типичного JSON.parse
, а также привязать значения к нотации coffeescript. Используя это, открывается следующий API:
# Include CSON
CSON = require('cson')
# Parse a file path
CSON.parseFile 'data.cson', (err,obj) -> # async
result = CSON.parseFile('data.cson') # sync
# Parse a string
CSON.parse src, (err,obj) -> # async
result = CSON.parseSync(src) # sync
# Stringify an object to CSON
CSON.stringify data, (err,str) -> # async
result = CSON.stringifySync(obj) # sync