微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

管道子进程stdout&stdin到node.js和browserify中的浏览器

我试图管道stdout&将child_process的标准输入到浏览器&在html页面显示它.我使用browserify来使node.js在浏览器上运行.我生成child_process的代码是这样的.
var child = require('child_process');

var myREPL = child.spawn('myshell.exe',['args']);

 // myREPL.stdout.pipe(process.stdout,{ end: false });

 process.stdin.resume();

 process.stdin.pipe(myREPL.stdin,{ end: false });

 myREPL.stdin.on('end',function() {
   process.stdout.write('REPL stream ended.');
 });

 myREPL.on('exit',function (code) {
   process.exit(code);
 });

 myREPL.stdout.on('data',function(data) {
    console.log('\n\nSTDOUT: \n');
    console.log('**************************');
    console.log('' + data);
    console.log('==========================');
 });

我使用browserify创建了一个bundle.js,我的html看起来像这样.

<!doctype html>
    <html lang="en">
        <head>
            <Meta charset="utf-8" />
            <title></title>
            <!--[if IE]>
            <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
            <![endif]-->
            <script src="bundle.js"></script>
            <script src="main.js"></script>
        </head>
        <body>

        </body>
    </html>

我试图避免运行http服务器并在浏览器中将结果传递给它.还有其他方法我可以做到吗?
谢谢

解决方法

您应该查看 hyperwatch,它将服务器端stdout / stderr传送到浏览器,并使其呈现与终端中显示的完全相同(包括颜色).

如果它没有完全解决您的问题,阅读代码应该至少可以帮助您.它使用引擎盖下的hypernal将终端输出转换为html.

原文地址:https://www.jb51.cc/nodejs/445728.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐