在Meteor/Node中确定从服务器返回的输出是标准错误还是标准输出
Determine if returned output from server is stderr or stdout on client in Meteor/Node?
我运行用户给出的exec命令并将其输出返回给客户端。当我返回结果时,一切都很好,但是我需要基于标准输出和标准错误运行两个不同的if场景。如何确定返回的输出是标准输出还是标准错误?在这种情况下,它总是像stdout一样运行。
*我需要直接解决方案,希望避免使用集合。注意,这只是示例代码。
服务器:// load future from fibers
var Future = Meteor.npmRequire("fibers/future");
// load exec
var exec = Meteor.npmRequire("child_process").exec;
Meteor.methods({
'command' : function(line) {
// this method call won't return immediately, it will wait for the
// asynchronous code to finish, call unblock to allow this client
this.unblock();
var future = new Future();
exec(line, function(error, stdout, stderr) {
if(stdout){
console.log(stdout);
future.return(stdout);
} else {
console.log(stderr);
future.return(stderr);
}
});
return future.wait();
}
});
客户:var line = inputdl.value;
Meteor.call('command', line, function(error, stdout, stderr) {
if(stdout){
console.log(stdout);
} else {
alert('Not valid command: ' + stderr);
}
});
可以返回一个同时包含stdout和stderr的对象:
Meteor.methods({
'command' : function(line) {
this.unblock();
var future = new Future();
exec(line, function(error, stdout, stderr) {
future.return({stdout: stdout, stderr: stderr});
});
return future.wait();
}
});
和客户端:
Meteor.call('command', line, function(error, result) {
if(result.stdout){
console.log(result.stdout);
} else {
alert('Not valid command: ' + result.stderr);
}
});
相关文章:
- 将咖啡转换为javascript,并将结果显示在Emacs中的标准输出中
- 在文本区域中显示 SSH2 标准输出和标准输出
- 如何处理节点.js中/从节点输出的 (cli) 标准输出流的字符编码
- 在 Jasmine 测试中将 console.log() 的调用重定向到标准输出
- 获取块上的可执行文件标准输出
- 执行:显示标准输出“实时”
- 通过ajax或直接输出的行业标准代码PHP和JSON数据
- 过程和过程之间的区别是什么?标准和进程.标准输出与HTTP请求和响应
- Nodejs child_process.exec:在控制台上禁用标准输出打印
- 我怎么能使用回调时,输出被打印到标准输出在ruby
- 从node.js运行脚本,捕获标准输出,通过web套接字发送
- 分割标准输出并将每个部分管道到命令
- 将标准输出流转换为html (add
在美化下) - 在Meteor/Node中确定从服务器返回的输出是标准错误还是标准输出
- 奇怪的执行问题-标准输出不显示-回调不工作
- 从金字塔视图动态输出标准输出'子流程.打开到网页
- 从正在等待输入的衍生进程中读取标准输出
- Node.js实时流式传输ffmpeg标准输出到res
- Node.js调用perl脚本并获得标准输出
- 如何将标准输出从nodejs实时发送到angularjs