私はチュートリアル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);
とにかく、続行することを決心しました。ノードのWebサイトのドキュメントを調べて、次のことを見つけました。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)
なぜこれを機能させることができないのだろうか、私は明らかに何かが欠けているが、何がわからないのか、そしてチュートリアル番号2を超えることさえできない。:(
- 私はWindows7を実行しています
- このコードも確認しました。Node.jsでresponse.writeがブラウザをブロックしているように見えるのはなぜですか?彼のコードもまったく機能しません。