CoffeeScript - 如何避免不必要的回报?

时间:2013-06-02 11:01:36

标签: node.js coffeescript

这是我的CoffeeScript代码:

http.createServer((req, res) ->
  if req.method is "POST"
    req.on "data", (data) ->
      queryData += data
    req.on "end", ->
      _.process req.url.substring(1), queryData, (response) ->
        res.writeHead 200,
          "Content-Type": "text/plain; charset=utf-8"
        fs.appendFile "./log", log, (err) ->
          if err
            console.log err
          else
            res.end response
  else
    res.writeHead 405,
      "Content-Type": "text/plain"
    res.end()
).listen 55385, "127.0.0.1"

以下是我正在编译的内容:

http.createServer(function(req, res) {
  if (req.method === "POST") {
    req.on("data", function(data) {
      return queryData += data;
    });
    return req.on("end", function() {
      return _.process(req.url.substring(1), queryData, function(response) {
        res.writeHead(200, {
          "Content-Type": "text/plain; charset=utf-8"
        });
        return fs.appendFile("./log", log, function(err) {
          if (err) {
            return console.log(err);
          } else {
            return res.end(response);
          }
        });
      });
    });
  } else {
    res.writeHead(405, {
      "Content-Type": "text/plain"
    });
    return res.end();
  }
}).listen(55385, "127.0.0.1");

正如你所看到的那样,这是多余的因素returns

我知道最后一行有关return的coffeescript-trick,但插入了这么多的void返回后,代码变得比编译的大。

有没有办法生成有效的Node.JS代码而没有额外的回报?

2 个答案:

答案 0 :(得分:3)

重点是返回。 CoffeeScript旨在促进编程的功能性,您可能应该从函数中返回一些内容。拥抱它!

答案 1 :(得分:0)

代码块末尾的

return,您不希望出现return语句。

queryData += data
return