我正在尝试阅读教程nodetuts.com - 教程 2,不幸的是无法使示例正常工作,我对 node.js 非常陌生,并且正在阅读我能掌握的任何教程。我知道 node.js 仍然是测试版,我认为使这项工作的代码现在已经过时了。(这是代码):
var http = require('http');
var spawn = require('child_process').spawn;
http.createServer(function(request, response){
response.writeHead(200, {
'Content-Type' : 'text/plain'
});
var tail_child = spawn('tail', ['-f', 'test.txt']);
tail_child.stdout.on('data', function(data){
console.log(data.toString());
response.write(data);
});
}).listen(4000);
无论如何,决心继续我一直在查看节点网站上的文档并发现:http ://nodejs.org/api/all.html#all_child_pid这不是我想要的(我想完成那个教程链接到顶部),但我想与子进程工作有关,并将该代码合并到此:
var http = require('http');
var server = http.createServer(function(res, req){
res.writeHead(200);
res.end('testing');
var spawn = require('child_process').spawn,
grep = spawn('grep', ['ssh']);
console.log('Spawned child pid: ' + grep.pid);
grep.stdin.end();
}).listen(4000);
不幸的是,当我刷新页面时,http://localhost:4000/
我什么也没有得到,命令提示符吐出:(我知道它说 writeHead 是一个问题,但在其他示例中它工作正常 - (如 nodetuts - 教程 1))
res.writeHead(200);
^
TypeError: Object #<IncomingMessage> has no method 'writeHead'
at Server.<anonymous> (Z:\Joseph Goss Folder\Google Drive\Code\javascript_first\nodejs_first\stdoutTest.js:20:6)
at Server.EventEmitter.emit (events.js:91:17)
at HTTPParser.parser.onIncoming (http.js:1785:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
at Socket.socket.ondata (http.js:1682:22)
at TCP.onread (net.js:404:27)
我想知道为什么我不能让这个工作,我显然错过了一些东西,但我不知道是什么,我什至无法通过第二个教程。:(
- 我正在运行 Windows 7
- 我也看过这段代码为什么 response.write 似乎在 Node.js 中阻止了我的浏览器?而且他的代码也根本不起作用。