node.js - 将spawn进程的STDOUT通过管道传输到superagent上传中

标签 node.js spawn superagent

我正在努力弄清楚如何获取生成的子进程的输出并将该输出输入到多部分 mime 上传中。

据我所知,这是我所拥有的应该工作

var request = require('superagent');
var spawn = require('child_process').spawn;

var spawned = spawn('echo', ['hello', 'world']);

request.post('http://localhost/api/upload')
    .attach('file', spawned.stdout)
    .end(function(res) {
        console.log("DONE", res);
    });

不幸的是,这会引发来自 Node 的相当无用的错误:套接字挂起响应。

最佳答案

你已经很接近了!

这是实现您想要的功能的最终版本:

var sys = require('sys')
var exec = require('child_process').exec;

var request = require('superagent');

exec('echo hello world', function(err, stdout, stderr) {
  request.post('http://localhost/api/upload')
    .attach('file', stdout)
    .end(function(res) {
      console.log('DONE', res);
});

我在这里使用 exec ,因为它的回调函数输出 stdout 和 stderr 流,这似乎是您想要的。

关于node.js - 将spawn进程的STDOUT通过管道传输到superagent上传中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27559320/

相关文章:

node.js - 流数据事件未注册

node.js - 如何使用 Mongoose 将单个文档从 MongoDB 检索到 javascript?

javascript - node js的gm包resizing image错误

javascript - 来自字符串的 JSON 数组

javascript - 允许爬取需要 javascript 的网站的 Node 包

javascript - Mocha 测试 Http Request Promise 是否抛出 : Unhandled promise rejection

javascript - 分配给变量的基本 node.js 回调

multiprocessing - 为什么在 Python3.8+ "fork"中使用 "spawn"有效但使用 `multiprocessing` 失败?

node.js - 如何判断生成的进程何时空闲

Node.JS 在 SELinux 沙箱中生成