おはようございます。
Node.jsを勉強していてふと気になったので、質問しました。
以下のコードはドットインストールにあった、POSTされたデータをpostsという配列に組み込んで表示するというものなのですが、readableイベント内で、read()を使って、リクエストされたデータをreq.dataに入れるときに、=ではなく+=を使っています。=でもいいのかと思いきや、=の場合はconsole.log(req.data)の結果がBufferという謎の文字列になってしまいます。
これは一体どういうことなのでしょうか?
どなたか解説をお願いいたします。
var temp = fs.readFileSync(__dirname + '/public_html/bbs.ejs','utf8'); var posts = []; function renderForm(posts, res){ var data = ejs.render(temp,{ posts : posts }) res.writeHead(200,{'Content-Type':'text/html'}); res.write(data); res.end(); } server.on('request',function(req,res){ if(req.method === 'POST'){ req.data = ''; req.on('readable',function(){ req.data += req.read(); //ここを+=から=にすると<Buffer 6e 61 6d 65 3d 31 26 65 6d 61 69 6c 3d 32>みたいな感じで表示されてしまいます。 console.log(req.data); }); req.on('end',function(){ var query = qs.parse(req.data); posts.push(query); renderForm(posts,res); }) }else{ renderForm(posts, res); } }).listen(settings.port,settings.host);//settings.jsをrequire済み
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/20 00:41
2016/03/20 12:42