sandbox
事实证明,CoffeeScript 通过将参数设置为true
通过调用来支持内置的安全部分eval
。例如
# Prepare
fsUtil = require('fs')
coffee = require('coffee-script')
# Read
dataStr = fsUtil.readFileSync('path').toString()
data = coffee.eval(dataStr, {sandbox:true})
上面的代码将读入文件数据,然后在沙盒模式下使用咖啡脚本对其进行评估。
我为此创建了一个很好的包装器,称为CSON ,它通过 require支持coffee
和文件,通过上述机制支持文件,通过典型机制支持文件- 以及将值字符串化回咖啡脚本符号。使用它,以下 API 被公开:js
cson
json
JSON.parse
# 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