Cloud9のNode.jsテンプレートでreq.read()した時にnullが入る


ドットインストールのNode.js入門をCloud9のNode.jsテンプレートで動かして学んでいたところ、フォームを作ってPOSTしたデータをイベントで受け取って表示するという内容で詰まりました。

server.js(一部省略)
function renderForm(posts,res){
var data = ejs.render(template,{
        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();
        });
        req.on("end",function(){
            var query = qs.parse(req.data);
            posts.push(query.name);
            console.log(posts);
            renderForm(posts,res);
        });
    }else{
        renderForm(posts,res);
    }
});

req.data += req.read();した時の文字列にnullが入ってきていて、postsを表示すると「hogenull」とか「abcdnull」に。原因を探していたところ記事がヒットしたので、req.data += req.read() || '';を試したらいけました

情報元:nodejsのreadableイベントは最後にnullが来るかも