Tag: 产生

使用没有ES6语法和良率的Nightmare.js

我使用nightmare.js构build了一个简单的节点脚本来抓取网站 var Nightmare = require('nightmare'); var vo = require('vo'); vo(run)(function(err, result) { if (err) throw err; }); function *run() { var x = Date.now(); var nightmare = Nightmare(); var html = yield nightmare .goto('http://google.com') .evaluate(function() { return document.getElementsByTagName('html')[0].innerHTML; }); console.log("done in " + (Date.now()-x) + "ms"); console.log("result", html); yield nightmare.end(); } 我想在一个使用较旧版本的节点的环境中运行这个不支持ES6function的节点。 在github页面上没有关于如何做这个没有“yield”关键字的例子。 我在这里find了一个没有使用ES6语法的用法示例: 带有噩梦的网页浏览 […]

NodeJS产生标准输出string格式

我在节点中产生一个进程,跟踪这个命令的输出: proc.stdout.on("data", function (data) { console.log(data.toString()); }); 它运作良好,但是,输出似乎是分裂的线路: npm http 304 https://registry.npmjs.org/underscore 以上只是npm install响应的一行。 通常情况下,这一切都在一行中,这也是在响应之前和之后添加换行符。 有没有办法让数据输出看起来像标准运行,即逐行?

如果脚本被杀死,node.js产生的进程将继续存在

是否有可能确保生成的进程node.js child_process将被杀害父时杀害? 这是一个示例脚本 var spawn = require('child_process').spawn; var log_tail = spawn("tail", ["-f", "/dev/null"]); setInterval(function() { console.log('just chilling'); }, 10000); 如果我看看进程树,我看到这个: $ ps faux ubuntu 9788 0.0 0.0 73352 1840 ? S 15:04 0:00 | \_ sshd: ubuntu@pts/7 ubuntu 9789 0.0 0.2 25400 6804 pts/7 Ss 15:04 0:00 | \_ -bash ubuntu 10149 1.0 0.2 655636 […]

node.js使用单独的stdout和stderrstream交互式产生一个subprocess

考虑下面的C程序(test.c): #include <stdio.h> int main() { printf("string out 1\n"); fprintf(stderr, "string err 1\n"); getchar(); printf("string out 2\n"); fprintf(stderr, "string err 2\n"); fclose(stdout); } 哪一个应该打印一行stdout,一行stderr,然后等待用户input,然后另一行stdout和另一行stderr。 非常基本! 在编译并在命令行上运行时,程序输出完成时(用户input为getchar()): $ ./test string out 1 string err 1 string out 2 string err 2 当试图用下面的代码使用nodejs产生这个程序作为subprocess时: var TEST_EXEC = './test'; var spawn = require('child_process').spawn; var test = spawn(TEST_EXEC); test.stdout.on('data', function […]