Simple enough answer, found on this comment and with some help from #Node.js on Freenode:
Just move the --debug-brk
into the execArgv
key of the options
param to fork
:
// Excerpt:
args = [
'127.0.0.1'
, 3030
, 'api-testing'
]
env = { 'DB_URI': 'mongodb://localhost/test' }
child = fork(nodeModule, args, {
env: env
, execArgv: ['--debug-brk=6001']
})
.on('message', this.callback)
execArgv
is the array of parameters passed to the node process. argv
is the set passed to the main module. There's a dedicated parameter to child_process.fork
for argv
, but execArgv
s have to be placed within the opts
param. This works, and in the child process we have:
> process.execArgv
["--debug-brk=6001"]
> process.argv
["/usr/local/Cellar/node/0.10.13/bin/node" "/Users/dmitry/dev/linksmotif/app.js", "127.0.0.1", "3030", "api-testing"]
In summary
Node.js consistently treats execArgv
and argv
as separate sets of values.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…