SpookyJSで、CasperJS側にundefinedな変数を渡せない
- casperjs@1.1.0-beta3
- spooky@0.2.5
を使って、スクリプトに渡したコマンドラインオプションをCasperJSのthen
コールバック内で使おうとしています。他の変数はちゃんとCasperJS内から見えるのですが、undefined
な変数はどこかで消えてしまうのか、そんな変数はないよ ("Can't find variable") と言われてしまいます。
誰が勝手に消しているのでしょうか。また、どうすれば回避できるでしょうか。
Spooky = require 'spooky'
spooky = new Spooky
child:
command: './node_modules/casperjs/bin/casperjs'
casper:
logLevel: 'info'
verbose: false
, (err) ->
if err
e = new Error 'Failed to initialize SpookyJS'
e.details = err
throw e
spooky.on 'error', (e, stack) ->
console.error(e)
if (stack)
console.log(stack)
spooky.on 'console', (log) ->
if (log.lastIndexOf('Unsafe JavaScript attempt', 0) == 0)
return
console.log(log)
spooky.start 'http://example.com'
spooky.then [{
foo: 'bar'
hello: undefined
}, ->
@echo foo
@echo hello
]
spooky.run()
出力:
$ coffee hello.coffee
bar
ReferenceError: Can't find variable: hello
[ { file: '', line: 5, function: '' },
{ file: '/path/to/node_modules/casperjs/modules/casper.js',
line: 1553,
function: 'runStep' },
{ file: '/path/to/node_modules/casperjs/modules/casper.js',
line: 399,
function: 'checkStep' } ]
ReferenceError: Can't find variable: hello
/path/to:5
/path/to/node_modules/casperjs/modules/casper.js:1553 in runStep
/path/to/node_modules/casperjs/modules/casper.js:399 in checkStep
{ [Error: Child terminated with non-zero exit code 1] details: { code: 1, signal: null } }