node.js - 在 stdin 中写入生成的 child_process 不起作用

标签 node.js

我正在使用以下方法生成一个 java 应用程序(用于查询本地数据库的 REPL):

repl = = require('child_process').spawn('java', ['-cp', '...list of libs...', ,{ cwd: '...path to env...', env: process.env, customFds: [-1, -1, -1] });

REPL 加载良好,因为我可以在 stdout 中看到它的输出,但 stdin.write 命令不会执行。然而,我可以直接将它们写入 Node 进程本身的控制台窗口(这很奇怪,因为我没有 .resume() 它)。 我已经打印出了生成进程的标准输入,它看起来像这样:

{ _handle:
   { writeQueueSize: 0,
     socket: [Circular],
     onread: [Function: onread] },
  _pendingWriteReqs: 0,
  _flags: 0,
  _connectQueueSize: 0,
  destroyed: false,
  bytesRead: 0,
  bytesWritten: 0,
  allowHalfOpen: undefined,
  writable: true,
  readable: false }

似乎没有定义“fd”,并且 .read 返回 false。如何解决这个问题? (这都是在Windows机器上, Node v0.6.6) 谢谢

最佳答案

文档指出 the customFds option was deprecated特别是因为他们无法让它在 Windows 上运行。

虽然 -1 数组意味着不应使用它,但由于整个选项已被弃用,请尝试将其完全删除,看看是否可以解决您的问题。

关于node.js - 在 stdin 中写入生成的 child_process 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9688398/

相关文章:

javascript - 如何使用 Javascript-nodejs 使用 wd 驱动程序在 Andriod Appium 中向上/向下滚动?

javascript - 在 sequelize 中使用另一个表连接两个表

javascript - Node http.request 什么都不做

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

node.js - 连接查询响应的序列化格式

node.js - 渲染前等待 map 功能

node.js - 在node.js中终止process.stdin

ajax - Node、Express、Ajax 和 Jade 示例

node.js - pkg-config 找不到 gtk+-3.0

node.js - 我在fedora 30上安装 Electron 版时出错