Tag: stdin

如何接收nodeJS简单的单行用户input?

我想用我自己的非常简单的控制台运行一个nodeJS应用程序,所以我的问题是如何以直接的方式(任何编程语言的典型)实现它。 我见过如何阅读用户input与NodeJS的文章,但我不知道是否有一个简单的方法已经包括在内。

如何从NodeJS中的stdin响应获取Vertica副本?

我使用的是Vertica Database 07.01.0100和node.js v0.10.32。 我正在使用vanberger的vertica nodejs模块 。 我想从stdin命令发送一个副本,并且正在使用这个示例: https : //gist.github.com/soldair/5168249 。 这是我的代码: var loadStreamQuery = "COPY \""+input('table-name')+"\" FROM STDIN DELIMITER ',' skip 1 direct;" var stream = through(); connection.copy(loadStreamQuery,function(transfer, success, fail){ stream.on('data',function(data){ log.info("loaddata: on data =>",data); transfer(data); }); stream.on('end',function(data){ log.info("loaddata: on end =>", data); if(data) { transfer(data); } success(); callback(null,{'result':{'status':'200','result':"Data was loaded successfully into […]

node.js如何使用child_process.exec显示stdininput

我有一个node.js脚本使用child_process.exec来调用npm adduser 。 通常情况下,如果我把npm adduserinput到控制台,我会得到: 用户名:[stdin提示符] 密码:[stdin提示符] 等等 如果我使用node.js来执行这个代码,那么没有任何东西会被打印出来,它只会被卡在一个空的提示符下,这个提示符会一直持续下去,直到我按下ctrl-C。 我如何获得通常的行为? 我基本上只是想执行bash,让它做它的事情…

节点process.stdin采取多个关键笔划以原始模式发出数据

我试图用6.7.0节点来捕捉标准中的每一个击键。 这是我在做什么: process.stdin.setEncoding('utf8'); process.stdin.setRawMode(true); process.stdin.resume(); process.stdin.on('data', function(data) { console.log('data', data); }.bind(this)); 当我运行我的程序时,我可以按一个键,它将注销data d但如果我按下多个键,它只有三次总按键后退出一个键。 这是超级怪异的。 任何人都知道可能会发生什么? 我正在使用macOS Sierraterminal。

从节点收听ConsoleTraceListener日志

我已经写了示例应用程序打印日志到ConsoleTraceListener 。 根据MSDN , ConsoleTraceListener应该redirect到标准输出。 我从节点spawn这个进程,并试图听stdout ,它无法获取信息。 任何想法如何解决这个问题? 我想将TraceListener传送到节点 C#: Trace.Listeners.Add(new ConsoleTraceListener(true)); Trace.AutoFlush = true; Console.WriteLine("This comes out"); Trace.WriteLine("oops"); Trace.TraceInformation("Getting lost"); Thread.Sleep(5000); Console.WriteLine("Stopping comes out"); 节点: let proc = ps.spawn("sample.exe"); proc.stdout.on('data', (c) => { console.log(c.toString()); }); proc.stderr.on('err', (c) => { console.log(c.toString()); });

我怎样才能使用child_process.spawn暂停媒体播放器?

我试图用一个node.js程序使用child_process.spawn来控制 mplayer 。 我在暂停播放后遇到问题。 出于某种原因,即使mplayer还没有完成播放,也会发送exit事件。 我究竟做错了什么? 下面的代码工作正常(我可以听到音乐播放),直到第二个暂停命令。 var spawn = require( 'child_process' ).spawn; var mplayer; var file = '/Users/snorpey/Music/Blink-182/Untitled/01 Feeling This.m4a'; mplayer = spawn( 'mplayer', [ file ] ); mplayer.on( 'exit', function(){ console.log( 'EXIT.' ); } ); setTimeout( pause, 5000 ); setTimeout( pause, 9000 ); function pause() { console.log( 'PAUSE', mplayer.stdin ); mplayer.stdin.write( 'p\n' ); […]

为什么当通过process.stdininputstream时节点完成/closures?

我正在尝试创build一个节点应用程序,您可以在JSON数据中pipe道并将其作为问题显示给用户。 我学会了如何绑定到process.stdin http://dailyjs.com/2012/03/08/unix-node-pipes/ 这是一个例子。 以下是我在terminal中提问的UI。 var inquirer = require("inquirer"); function runInquirer(choices) { inquirer.prompt([ { type: "checkbox", message: "Select toppings", name: "toppings", choices: choices } ], function( answers ) { console.log( JSON.stringify(answers, null, " ") ); }); } 如果我直接调用处理程序,它的工作原理 runInquirer([ {name:'Cheese'}, {name:'Tomato'} ]); 但是,当我试图将数据input到它 process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', function(data) { runInquirer(JSON.parse(data)); }); 它显示问题,然后立即退出。 所以它不会等待我的用户input。 从命令行调用示例(注意pipe道|) ➜ test […]

从标准input读取时,Node.js无法读取pythonsubprocess标准输出

我有一个node.js脚本启动一个pythonsubprocess并读取它的stdout。 只要Python进程不尝试从标准input读取,它就会工作。 然后父进程没有从孩子得到任何东西。 我在这里有node.js脚本和两个pythontesting用例:(这两个示例工作,如果你评论尝试从标准input读取的行) 第一个孩子: import sys print('before') for line in sys.stdin: print(line) print('after') 第二个孩子: import sys print('before') while True: line = sys.stdin.readline() if line != '': print(line) else: break print('after') 家长: const spawn = require('child_process').spawn; let client = spawn('python', ['test1.py'], {cwd: '/tmp'}); client.stdout.on('data', (data) => { console.log(data.toString()); }); client.stderr.on('data', (data) => { console.log(data.toString()); }); […]

Bash + Node.js + stdin / stdoutredirect:错误“不是tty”

此问题可能是Windows特定的。 我没有在Linux或Mac上testing过。 我用: Windows 7 64位 Node.js 8.1.3 Git for Windows 2.8.1,包括GNU bash,版本4.3.42(5) – 发布 node my-cli.js > foo.txt :错误output is not a tty node my-cli.js < foo.txt :错误input is not a tty 。

NodeJS从后台进程读取stdin

我有一个在Ubuntu 12.04 LTS下作为服务运行的节点进程(在/ etc / init下有一个configuration文件)。 该系统运行在一个条形码阅读器连接到的无头x86路由器上。 我需要做的是能够读取来自条形码阅读器的input(就像所有的意图和目的,它的行为就像一个USB键盘),以便它可以发送到远程节点处理,但我想避免parsing原始HIDinput。 现在我正在使用node-hid但解决scheme是暂时的,因为我不知道如何parsing传入的数据缓冲区 – 我已经能够识别模式并将其映射到散列表中,以便当我收到时, 02 00 00 00 00 00 00 00 02 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 我知道我已经从Code39条码读了一个“C”,但这不是可移植的,坦率地说,它太脏了,我几乎感到羞愧。 但是,我所知道的是,操作系统完全能够解码从条形码阅读器接收到的input:我可以使用它在进程处于前台时提供标准stdininput,使用 process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', function(input) { … }); 我可以高兴地阅读任何来自条码阅读器。 当然,这个过程在后台运行时不起作用,所以我的问题是:是否有办法捕获stdin缓冲区,以便从后台运行的NodeJS进程中读取? 奖金的问题:如果我问的是不可能的,有人可以指点我一个合理的参考/文件,可以让我破译我收到的HIDinput( node-hid只提供数据缓冲区),以便我可以至less写一个便携式的,通用的函数来解码呢? 我相信它已经完成了,我想避免重新发现热水:)