相关疑难解决方法(0)

Nodejs Child Process:从已经初始化的进程写入stdin

我正在尝试phantomjs使用节点生成外部进程child_process,然后在初始化后将信息发送到该进程,这可能吗?

我有以下代码:

var spawn = require('child_process').spawn,
    child = spawn('phantomjs');

child.stdin.setEncoding = 'utf-8';
child.stdout.pipe(process.stdout);

child.stdin.write("console.log('Hello from PhantomJS')");
Run Code Online (Sandbox Code Playgroud)

但我在stdout上唯一得到的是phantomjs控制台的初始提示.

phantomjs> 
Run Code Online (Sandbox Code Playgroud)

所以似乎child.stdin.write没有产生任何影响.

我不确定我是否可以在初始产卵时向phantomjs发送更多信息.

提前致谢.

stdin external-process child-process node.js phantomjs

44
推荐指数
2
解决办法
4万
查看次数

如何将STDIN传递给node.js子进程

我正在使用一个包装pandoc节点的库.但我无法弄清楚如何将STDIN传递给子进程`execFile ...

var execFile = require('child_process').execFile;
var optipng = require('pandoc-bin').path;

// STDIN SHOULD GO HERE!
execFile(optipng, ['--from=markdown', '--to=html'], function (err, stdout, stderr) {
    console.log(err);
    console.log(stdout);
    console.log(stderr);
});
Run Code Online (Sandbox Code Playgroud)

在CLI上它看起来像这样:

echo "# Hello World" | pandoc -f markdown -t html
Run Code Online (Sandbox Code Playgroud)

更新1

试图让它合作spawn:

var cp = require('child_process');
var optipng = require('pandoc-bin').path;
var child = cp.spawn(optipng, ['--from=markdown', '--to=html'], { stdio: [ 0, 'pipe', 'pipe' ] });

child.stdin.write('# HELLO');
// then what?
Run Code Online (Sandbox Code Playgroud)

command-line-interface node.js

7
推荐指数
3
解决办法
8399
查看次数